如何使页面插件优先于任何其他分类,如自定义帖子、帖子或类别

时间:2011-07-08 作者:sahin

我使用WordPress作为CMS。

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

我有一个名为“立式加工中心”的类别,其中有一个是“立式加工中心”,这个类别在谷歌的第二页排名,我想优化更多。所以我创建了一个页面。。

因此,正如您所看到的,页面和类别具有相同的slug。

当我写www.xx时。com/立式加工中心,分类页面正在打开,我还用它检查了monkeyman重写分析器,它显示分类slug的排名更高。

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

是否有任何插件或任何方法可以在不编写代码的情况下做到这一点。

谢谢

2 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

您需要启用详细页面规则,以确保明确定义所有页面(而不是使用通用规则)。但除此之外,还需要将这些页面规则移到分类规则之上。这是a fairly recent change, 我相信是在3.0和3.1之间。

我解释了如何在this answer to a very related question. 总之,这是一个代码:

add_action( \'init\', \'wpse16902_init\' );
function wpse16902_init() {
    $GLOBALS[\'wp_rewrite\']->use_verbose_page_rules = true;
}

add_filter( \'page_rewrite_rules\', \'wpse16902_collect_page_rewrite_rules\' );
function wpse16902_collect_page_rewrite_rules( $page_rewrite_rules )
{
    $GLOBALS[\'wpse16902_page_rewrite_rules\'] = $page_rewrite_rules;
    return array();
}

add_filter( \'rewrite_rules_array\', \'wspe16902_prepend_page_rewrite_rules\' );
function wspe16902_prepend_page_rewrite_rules( $rewrite_rules )
{
    return $GLOBALS[\'wpse16902_page_rewrite_rules\'] + $rewrite_rules;
}

SO网友:Matteo Morreale

我和你有同样的问题。

我的解决方案就是这样,但就我的情况而言,我正在页面创建中使用Visual Composer。这很重要,因为我的方法将只移植页面的内容部分。

我没有更改优先级,而是更改了该类别的类别模板!

所以创建要设置为类别的页面,并记下ID(例如86292)。

如果您的类别具有ad ID(如示例35),则可以通过复制存档创建自定义类别模板。php并将其重命名为类别35。php。

在…内删除每个blogloop并将其设置为内容:

    $p = get_post(86292); 
    echo do_shortcode($p->post_content);
现在,您对该职位所做的每一项更改(可以保留为草稿)都将反映在类别上:D

一个或两个注释。。。

任何自定义信息(如SEO、自定义css等)都不会被移植!仅编辑器内容。

如果要设置任何自定义css,必须使用category-x.php中的标记。

结束

相关推荐