如何使页面插件优先于任何类别

时间:2015-02-04 作者:Jai

我使用WordPress。

当它们有相同的slug时,我需要显示页面而不是类别。

我有一个类别叫做;痤疮“;带着鼻涕虫“;痤疮“;

页面和类别具有相同的slug。

当我写作时www.example.com/acne , 类别页面正在打开,

我需要让WordPress显示页面,而不是类别,当它们有相同的slug时。

有没有办法做到这一点。

1 个回复
SO网友:TheDeadMedic

你可以钩住parse_request 并欺骗WordPress,使其认为它与一个页面永久链接相匹配,如果存在一个类别术语具有相同的slug:

/**
 * Override query for pages that match a category slug.
 * 
 * @param   WP  $wp
 */ 
function wpse_177014_category_to_page ( $wp ) {
    if ( ! empty( $wp->query_vars[\'category_name\'] ) && get_page_by_path( $slug = $wp->query_vars[\'category_name\'] ) ) {
        if ( ! empty( $wp->query_vars[\'paged\'] ) )
            $page = $wp->query_vars[\'paged\'];
        else
            $page = \'\';

        $wp->matched_query = "pagename=$slug&page=$page";
        $wp->query_vars    = array(
            \'pagename\' => $slug,
            \'page\'     => $page,    
        );      
    }
}

add_action( \'parse_request\', \'wpse_177014_category_to_page\' );

结束

相关推荐

Custom Feed URLs

我正在为我的一个帖子类型创建一个自定义提要,并允许用户设置该提要的名称。http://www.mysite.com/feed/userdefinedname现在,我还想让用户不仅可以显示该CPT中的所有帖子,还可以按类别过滤它们。目前情况是这样的:http://www.mysite.com/feed/testcategory然而,如果我能将其结构如下,我会非常喜欢它:http://www.mysite.com/feed/userdefinedname/testcategory这可能吗?下面是生成这些基于类