你需要query for your posts which have a the associated custom taxonomy term(s),
$args = array(
\'post_type\' => \'football_fixture\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'competition\',
\'field\' => \'term_id\',
\'terms\' => array($term_id), //put more term ids if required
),
),
);
$query = new WP_Query( $args );
if($query->have_posts()){
while($query->have_posts()){
$query->the_post();
echo \'<li>\' . get_the_title( $query->post->ID ) . \'</li>\';
}
// Restore original Post Data once finished, IMPORTANT
wp_reset_postdata();
}
现在,你需要
$term_id
为了确保上述查询有效,在您的示例中,您在顶部有以下行,
$term_id = get_queried_object()->term_id;
然而,
the function get_queried_object
将只返回分类法模板的term\\u id,您要做的是在
page template, 当页面标题以开头时,
<?php
/**
* Template Name: Fixture -- this indicates that you are building a page template
因此,您将无法访问任何术语id。您有2个选项可以获得您想要的结果,
在页面模板中硬编码术语ID,或将其作为URL属性中的参数传递taxonomy archive template, 因此,您可以直接在菜单中使用自定义分类术语,用户将单击术语链接,WordPress将解析术语id到您的页面
综合起来,我推荐第二种选择。创建一个名为taxonomy-competition.php
并使用以下内容将其保存在根主题或子主题文件夹中,
<?php
/**
* Taxonomy \'competition\' archive template
*/
get_header();
$term_id = get_queried_object()->term_id;
$args = array(
\'post_type\' => \'football_fixture\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'competition\',
\'field\' => \'term_id\',
\'terms\' => array($term_id), //put more term ids if required
),
),
);
$query = new WP_Query( $args );
echo \'<ul>\';
if($query->have_posts()){
while($query->have_posts()){
$query->the_post();
echo \'<li>\' . get_the_title( $query->post->ID ) . \'</li>\';
}
// Restore original Post Data once finished, IMPORTANT
wp_reset_postdata();
}
echo \'</ul>\';
get_footer();
这将显示根据给定术语组织的帖子标题列表。
要在前端使用它,请添加自定义分类法competition
要显示的术语navigational menu in the dashboard. 如果无法看到分类菜单选项,请确保在仪表板页面顶部的“屏幕选项”选项卡中选中该选项。