php - 无法在前端显示 get_term 输出
问题描述
所以我尝试在前端显示自定义分类法。自定义分类法来自我使用的插件,称为 wcs-instructor。我只想通过列出讲师的姓名和图像来显示包含分类内容的单页,图像是自定义字段。
当我尝试使用 get_term 或 WP_Term_Query 查询分类时,只要我使用我的管理员帐户登录(实际上还没有测试另一个帐户),一切都会很好地显示出来。当我注销并再次打开页面时,它是空白的。
结构如下。
自定义分类:wcs-instructor
页面端点:/trainer
自定义单页:page-trainer.php
get_header();
?>
<main id="primary" class="site-main">
<?php
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', 'trainer' );
endwhile;
?>
</main><!-- #main -->
<?php
get_footer();
content-trainer.php(删除了一些不必要的 html)
<div class="content">
<?php
$term_query = new WP_Term_Query(
array( 'taxonomy' => 'wcs-instructor',) );
if ( ! empty( $term_query->terms ) ) {
foreach ( $term_query ->terms as $term ) {
echo $term->name;
}}
else {
echo 'No term found.';
}
?>
</div>
我知道上面的代码只给了我不为空的结果,但分类法得到了不是空的条目。此外,下面的代码也不起作用。
<?php
$terms = get_terms( array(
'taxonomy' => 'wcs-instructor',
'hide_empty' => false,
) );
foreach ( $terms as $term )
{
echo $term->term_id;
echo '<br>';
echo $term->name;
}
?>
而且我只是找不到原因,因为当我转到 /wcs-instructor/testinstructor 时,即使我没有登录,我也可以查看内容。
关于如何调试这种行为或为什么它首先表现得这样的任何提示?
解决方案
听起来该分类法可能将publicly_queryable
arg 设置为false
. 不确定您使用哪个插件来管理您的自定义分类,但CPT UI 插件具有该参数的设置。
推荐阅读
- node.js - NodeJS 和 Auth0 的 JWT 身份验证
- javascript - 如何使用数组中的值编辑具有相同类的 td 的所有值
- postgresql - PostgreSQL:在事务中检测到死锁 SELECT FOR UPDATE
- excel - 将相同的超链接粘贴到所有工作表
- sql - 2 条件 1 AND 语句
- azure-devops - 如何将 ASPNET Core 站点部署到 Azure Linux Web App(无容器)
- c# - 列表框多选模式不起作用
- c# - 我可以使用抽象基类作为 Unity Editor 元素吗?
- angular - 在 ag-grid 中加载数据时如何避免“无行”消息
- php - 来自 mysqli 数据库的 Div 数组未显示第一行