重写规则以重定向到最新日期固定链接

时间:2012-08-17 作者:ivavid

我有一个存档文件,它使用表单上的URL显示www.mysite.ex/mycpt 我需要为URL制定一个重写规则,将其重定向到具有最新日期存档的永久链接,该存档在表单上www.mysite.ex/mycpt/2012/01/31. 归档文件使用相同的归档文件mycpt。php模板,但我的猜测是,在这种情况下,它是一种自定义的Post类型并不重要。

我可以使用get\\u posts获取最近的发布日期,并提取post_date 对于post_type 并使用该信息将路径附加到上述URL。我想我可以把它放在一个重写规则中,但是我如何制定一个重写规则,它总是包含最新发布日期的最新信息?

我想我可能需要在某个地方制作一个动作挂钩,以便在post_type 但是我不确定该使用哪个钩子以及如何使用它,或者它是否是一个好的开始方法。

有什么想法吗?

编辑:感谢woony为我指出了正确的方向。

2 个回复
SO网友:woony

我认为这不是一个好方法。我认为最好在mycpt重定向您的页面。让它使用您的get\\u帖子获取php中的最后日期。并让页面重定向到您需要的位置。不要自动更新您的。htaccess,这不是它的目的。

SO网友:ivavid

在自定义帖子类型存档的开头,我添加了以下代码:

<?php 
    if (!is_date()) { // redirect mycpt archive page to the most recent post date page

        wp_safe_redirect(seron_get_most_recent_mycpt_link());
        exit;
    }
?>
A还将此函数添加到函数中。php文件:

/**
* Genrate a URL for the most recent mycpt post date.
*/
function seron_get_most_recent_mycpt_link() {

    $latest_post = get_posts(array(\'numberposts\' => 1,
                                   \'orderby\' => \'post_date\',
                                   \'order\' => \'DESC\',
                                   \'post_type\' => \'mycpt\')
    );

    $date = explode(\' \', $latest_post[0]->post_date);
    return home_url() . \'/mycpt/\' . str_replace(\'-\', \'/\', $date[0]);
}

结束

相关推荐

Permalinks Won't Work

由于某种原因,永久物不会起作用。我单击选项3的单选按钮,然后单击保存,但它会返回到选项1。发生什么事了?(这不应该是FTP问题-它有本地主机访问数据库的权限,我可以在Wordpress fine中下载插件。)