我正在尝试使用页面类别(而不是帖子)作为筛选子页面的一种方式。
我正在努力创建一个“工作”页面,其中列出了所有的子项,并且每个子项也将对其应用类别。另一个子菜单将允许您选择类别,并且仅列出这些子页面。
迄今为止:
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
样板
我知道类别并不是为页面设计的,所以我愿意接受关于如何按某种类别设置和过滤页面的建议。
我已经在使用高级自定义字段,因此可以使用它;我宁愿不使用任何其他插件。
最合适的回答,由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\' ) );
}
});