如何在前端检索分类Metabox字段

时间:2021-06-29 作者:user3756781

我有一个自定义分类法,其中包含正在使用CMB2填充的自定义字段。我似乎不明白为什么我无法在前端填充此信息。

下面是在名为Placement的自定义分类法上生成自定义字段的代码。

     add_action( \'cmb2_admin_init\', \'placement_register_taxonomy_metabox\' ); 
 function placement_register_taxonomy_metabox() { 
    $prefix = \'placement_\'; 
    $cmb_term = new_cmb2_box( array( 
        \'id\'               => $prefix . \'placement\', 
        \'title\'            => esc_html__( \'Title Handler\', \'veruscref-theme\' ), // Doesn\'t output for term boxes 
        \'object_types\'     => array( \'term\' ), // Tells CMB2 to use term_meta vs post_meta 
        \'taxonomies\'       => array( \'placement\' ), // Tells CMB2 which taxonomies should have these fields 
        // \'new_term_section\' => true, // Will display in the "Add New Category" section 
    ) ); 
 $cmb_term->add_field( array( 
        \'name\'     => esc_html__( \'Loan Program Title\', \'veruscref-theme\' ), 
        \'desc\'     => esc_html__( \'Will be displayed on transaction page\', \'veruscref-theme\' ), 
        \'id\'       => $prefix . \'tax_header\', 
        \'type\'     => \'title\', 
        \'on_front\' => false, 
    ) ); 

    $cmb_term->add_field( array( 
        \'name\' => esc_html__( \'Title\', \'veruscref-theme\' ), 
        \'id\'   => $prefix . \'tax_title\', 
        \'type\' => \'text\', 
    ) ); 
     $cmb_term->add_field( array( 
        \'name\' => esc_html__( \'Small Title\', \'veruscref-theme\' ), 
        \'id\'   => $prefix . \'tax_small_title\', 
        \'type\' => \'text\', 
    ) ); 
下面是我的前端代码

<?php
$terms = get_terms(
array(
    \'taxonomy\'   => \'placement\',
    \'hide_empty\' => 1,
    \'exclude\' => array(4,23),
)
);
if ( ! empty( $terms ) && is_array( $terms ) ) { foreach ( $terms as $term ) { ?>       
<?php                        
$title = get_term_meta( get_queried_object_id(), \'placement_tax_title\', true );
echo $title;                                             
?>  
<?php } } ?>
我的代码有什么问题?

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

您需要使用$term->term_idget_queried_object_id() 在里面get_term_meta

相关推荐

用php实现WooCommerce维护模式

我想打开我网站的某些部分,剩下的页面只能作为网站管理员访问。我制作了一个维护插件,一切正常。然而,我无法过滤用户访问的页面。我想打开一个特定的产品类别,以及属于这个类别的所有产品。如果我没有以管理员身份登录,则无法访问产品类别及其所属的产品。我的代码如下-任何人都可以看到我做错了什么?谢谢<?php @return void function ng_maintenance_mode() { global $pagenow;