Using categories with pages

时间:2014-11-26 作者:Alan Shortis

我正在尝试使用页面类别(而不是帖子)作为筛选子页面的一种方式。

我正在努力创建一个“工作”页面,其中列出了所有的子项,并且每个子项也将对其应用类别。另一个子菜单将允许您选择类别,并且仅列出这些子页面。

迄今为止:

functions.php - Show categories meta box for pages

function myplugin_settings() {  
    register_taxonomy_for_object_type(\'category\', \'page\');  
}
add_action( \'init\', \'myplugin_settings\' );

Set up a category menu, which is rendered on my \'work\' page

<?php wp_nav_menu(array(\'theme_location\' => \'category-menu\')); ?>

category.php - Get the ID of the category we\'re looking at

<?php get_header(); ?>

<?php $cat_id = get_cat_id( single_cat_title("",false) ); ?>

<p>
<?php echo $cat_id; ?>
</p>

<?php get_footer(); ?>
这就是我陷入困境的地方:我如何循环浏览包含我在category.php 样板

我知道类别并不是为页面设计的,所以我愿意接受关于如何按某种类别设置和过滤页面的建议。

我已经在使用高级自定义字段,因此可以使用它;我宁愿不使用任何其他插件。

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

正如您所说,页面不应该有类别。我更愿意研究自定义的帖子类型和分类法,但实现还是取决于您,因为我不知道您的结构

我以前从未尝试过,我也不知道这是否真的有效,但你可以试试pre_get_posts 修改主查询以在上显示页面的操作category.php 样板

add_action( \'pre_get_posts\', function ( $query ) {
    if ( !is_admin() && $query->is_category() && $query->is_main_query() ) {
        $query->set( \'post_type\', array( \'post\', \'page\' ) );
    }
});

结束

相关推荐

我似乎不能在Get_Pages中显示摘录,并且不知道为什么?

因此,我在get\\u页面中有一个foreach循环,它显示父ID中的子页面列表。标题、特色图片和链接都很好,但我根本无法找到摘录。我在引用http://codex.wordpress.org/Function_Reference/get_pages$args = array( \'child_of\' => 16, \'title_li\' => \'\', \'depth\' => 0,