根据 post ID 获取自定义 post 类型的分类

Get taxonomy of custom post type based on post ID

我正在尝试在我的自定义 post 类型 cota 的管理 table 列表中添加一列,这是当前分类法 tipo 但它没有打印出来。

这是当前代码:

function la_set_cota_columns($columns){

   $newColumns = array();
   $newColumns['title'] = 'Título da Cota';
   $newColumns['comissao'] = 'Comissão';
   $newColumns['proprietario'] = 'Proprietário';
   $newColumns['vencimento'] = 'Vencimento';
   $newColumns['tipo'] = 'Tipo de Cota';

   return $newColumns;
}
add_filter('manage_cota_posts_columns', 'la_set_cota_columns');


function la_cota_custom_column($column, $post_id){
   $content = get_post_meta($post_id);

   switch( $column ){

       case 'comissao' :
         echo $content['comissao'][0];
       break;

       case 'proprietario' :
         echo $content['proprietario'][0];
       break;

       case 'vencimento' :
         echo $content['vencimento'][0];
       break;

       case 'tipo':
         echo get_metadata('cota', $post_id, 'tipo', $single = true);
       break;
   }

}
add_action('manage_cota_posts_custom_column', 'la_cota_custom_column', 10, 2);

可以查到实际结果here

非常感谢。

因此您要打印与 table 中列出的当前 post 关联的术语...因此,您需要使用 wp_get_post_terms 函数:

$term_names = wp_get_post_terms($post_id, 'tipo', array('fields' => 'names')); // returns an array of term names
echo implode(', ', $term_names);

A​​ns 只是关于您使用的函数调用的一点评论:最后一个参数是可选的,这意味着您可以传递一个 value 或什么都不传递。如果省略它,它将具有默认值 false。但是你在调用函数时没有传递默认值:

get_metadata('cota', $post_id, 'tipo', true);

希望对您有所帮助!