固定链接:只在帖子URL中显示一种wp类别

时间:2017-01-17 作者:zikoz

我在我的网站/博客/和/新闻/中使用了两个不同的类别。我想在我的帖子中显示/新闻/类别,但我不想在博客帖子的url中显示/博客/类别。我已经有很多帖子,每个类别都有不同的模板,所以我想避免创建页面来实现这一点。想法如下:

/新闻/类别-->索引。php/新闻/帖子名称/

/博客/类别-->索引。php/帖子名称/

这可能吗?

1 个回复
最合适的回答,由SO网友:prosti 整理而成

需要做两件事。首先,使用post_link 滤器

function _20170117_post_link( $url, $post, $leavename ) {
    if( in_category( \'news\', $post) ) { 

        $url = get_site_url() . \'/news/\' . $post->post_name ;
    }
    return $url;
}
add_filter( \'post_link\', \'_20170117_post_link\', 10, 3 );
其次,为此制定重写规则:

function _20170117_rewrite() {
  add_rewrite_rule(\'^news/(.?.+?)(?:/([0-9]+))?/?$\', \'index.php?pagename=$matches[1]
&page=$matches[2]\', \'top\');
  add_rewrite_rule(\'^news/([^/]+)(?:/([0-9]+))?/?$\', \'index.php?name=$matches[1]
&page=$matches[2]\', \'top\');
  flush_rewrite_rules();
}
add_action(\'init\', \'_20170117_rewrite\');
请注意flush_rewrite_rules(); 您不需要每次都执行。就一次。或者你可以去options-permalink.php 然后单击保存。

我使用以下设置进行了测试:

enter image description here

相关推荐

WP_DROPDOWN_CATEGORIES-如何在Widget中保存?

我想用wp_dropdown_categories 在自定义小部件中。所有内容都显示得很好,但由于某些原因,无法正确保存。这是form() 和update() 小部件的功能-我做错什么了吗?public function form( $instance ) { /* Set up some default widget settings. */ $defaults = array( \'title\' => \'Classes by Category\' );&#x