如何显示WordPress数据库中的分类术语?

时间:2016-09-27 作者:bdtheme

我试图在我的metabox中显示所有与“竞争”分类法相关的术语,但它没有显示出来。

<p>
<label for="match_competition_name"><?php _e( \'Comtetition\', \'match_details\' ); ?></label>
<select name="match_competition_name" id="match_competition_name">
<?php 
global $wpdb;
$get_comtetition=$wpdb->get_results("SELECT * FROM \'wp_term_taxonomy\' WHERE  \'taxonomy\' = \'competition\' ");
foreach($get_comtetition as $row){
?>
<option <?php echo (match_details_get_meta( \'match_competition_name\' ) === $row->post_title ) ? \'selected\' : \'\' ?>><?php echo $row->post_title;?></option>
<?php } ?>
</select>
</p>

1 个回复
最合适的回答,由SO网友:Naresh Kumar P 整理而成

Solution One:

get\\u terms()-检索给定分类法或分类法列表中的术语。

您可以在发送查询之前将任何自定义项完全注入查询,还可以使用过滤器控制输出。

当缓存具有术语时,将调用“get\\u terms”筛选器,并将传递找到的术语以及$taxonomies数组和$args数组。此过滤器也会在传递术语数组之前调用,并将传递术语数组以及$分类法和$参数。

get_terms 返回对象数组。不能回显数组,如果回显,则只会得到array()。你能做的是print_r($array)var_dump($array) 查看其中包含的数据。

$taxonomy = \'shirt\';
$args=array(
  \'hide_empty\' => false,
  \'orderby\' => \'name\',
  \'order\' => \'ASC\'
);
$tax_terms = get_terms( $taxonomy, $args );
foreach ( $tax_terms as $tax_term ) {
    echo $tax_term->name;
}

Solution Two:

您可以使用调用的函数get_taxonomies() 以便查询出所需的分类。

Syntax:

 <?php get_taxonomies( $args, $output, $operator ) ?>

Example:

此示例使用“object”输出检索并显示名为“genre”的分类法:

<?php 
$args=array(
  \'name\' => \'genre\'
);
$output = \'objects\'; // or names
$taxonomies=get_taxonomies($args,$output); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    echo \'<p>\' . $taxonomy->name . \'</p>\';
  }
}  
?>

相关推荐

在metabox中使用wp_EDITOR tinyMCE导致离开页面时出现表单警告

在自定义帖子类型元框中使用tinyMCE作为wp\\u编辑器,在我尝试提交或想要更改位置时创建警报我没有使用Quicktags这样的行为,但由于TinyMCE更容易使用,我想使用它。我知道在metabox中使用tinymce可能会导致问题,因为它不能在dom中移动,但这不是问题所在。我还使用了wordpress codex中推荐的挂钩、“edit\\u page\\u form”、“edit\\u form\\u advanced”和“dbx\\u post\\u sidebar”,但它并没有解决我的问题