首页 > 解决方案 > 无法在前端显示 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 时,即使我没有登录,我也可以查看内容。

关于如何调试这种行为或为什么它首先表现得这样的任何提示?

标签: phpwordpresstaxonomycustom-taxonomy

解决方案


听起来该分类法可能将publicly_queryablearg 设置为false. 不确定您使用哪个插件来管理您的自定义分类,但CPT UI 插件具有该参数的设置。

CPT UI 插件中分类法的公共可查询设置


推荐阅读