在类别搜索结果中显示页面和文章

时间:2013-04-01 作者:Hinek

我正在使用“将类别映射到页面”向页面添加类别。

当我调用链接时http://mypage.com/category/catA+catB 我得到了所有与catA和catB类别相关的文章。我要找的是:

A) 对页面执行类似操作的一种方法:调用http://mypage.com/pages/catA+catB 并获取与catA和catB类别相关的所有页面

-或-

B) 在类别搜索结果页面上获取第一页和第二篇文章的方法,如:

一些页面另一个页面另一篇文章另一篇文章

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

要在类别存档索引中显示页面,请执行以下操作:

将类别分类添加到Page 岗位类型

默认情况下,静态页面没有任何与之关联的分类法,包括category 分类学所以您需要注册category 的分类法page post类型,使用register_taxonomy_for_object_type():

function wpse94150_register_category_taxonomy_for_page_post_type() {
    register_taxonomy_for_object_type( \'category\', \'page\' );
}
add_action( \'admin_init\', \'wpse94150_register_category_taxonomy_for_page_post_type\' );
创建包含类别的页面

不言而喻。要使页面显示在类别存档索引中,您需要具有已分配类别的页面。

过滤查询,以包括类别存档索引页的页面帖子类型

接下来,您需要告诉WordPressinclude the \'page\' post-type 在类别存档索引查询的结果中,通过过滤$query 对象通过pre_get_posts:

function wpse94150_filter_pre_get_posts( $query ) {
    // Only modify the main loop query
    // on category archive index pages
    if ( $query->is_main_query && $query->is_category() ) {
        // Return both posts and pages
        $query->set( \'post_type\', array( \'post\', \'page\' ) );
    }
}
add_action( \'pre_get_posts\', \'wpse94150_filter_pre_get_posts\' );
查看类别存档索引页,现在包含帖子和页面

导航到example.com/category/cat-a, 如果您有分配给“Cat A”的页面,您将在存档索引中看到它们。

编辑步骤3中的代码在哪里输入我会将步骤3中的代码放在与步骤1中的代码相同的位置:理想情况下是放在站点功能插件中,或者作为不太理想的备份,放在functions.php 子主题的文件。

和2。如果我更新WordPress或其插件,这种变化会稳定吗?

由于这些更改不是直接对任何核心或插件文件进行的:是的,这些更改是稳定的,并且是经得起未来考验的。(除非WordPress更改了其中一个底层API或挂钩,这是非常值得怀疑的。)

SO网友:Hinek

事实证明,“将类别映射到页面”插件有自己的设置页面和一个选项Show the Pages on Category pages“,这正是我想要的。

不管怎么说,我在Chip Bennett的答案上做了标记,因为它不用插件就能解决问题,而且非常详细。谢天谢地的芯片。

结束

相关推荐

New Pages及其父级的永久链接

我遇到了一个新问题,当我尝试创建一个新页面时,永久链接并没有自动生成。例如,在“添加新页面”页面上,我选择“我们的俱乐部”作为家长(其中有一段“俱乐部”)。然后我键入“会员资格”作为标题。然而,在文本输入下面生成的永久链接表示www.coolclub.com/membership (而不是www.coolclub.com/club/membership 如预期)。如果不选择“Clubhouse”作为我的新页面的父页面(该页面本身已链接为“我们的俱乐部”的子页面),则会成功生成永久链接。有什么想法吗?