WordPress开发笔记

WordPress获取全部自定义分类法(taxonomy)的方法

方法一

摘自WordPress官方网站。仅显示公共自定义分类法的列表 — 不会列出包括 WordPress 内置分类法(例如,类别和标签):


$args = array(
  'public'   => true,
  '_builtin' => false
  
); 
$output = 'names'; // or objects
$operator = 'and'; // 'and' or 'or'
$taxonomies = get_taxonomies( $args, $output, $operator ); //分类名称或对象的数组
if ( $taxonomies ) {
	echo '<ul>';
	foreach ( $taxonomies  as $taxonomy ) {
		echo '<li>' . $taxonomy . '</li>';
	}
	echo '</ul>';	
}

方法二

在WordPress中,获取全部自定义分类法(taxonomy)可以使用 get_taxonomies() 函数。这个函数会返回一个包含所有注册的分类法的数组。

以下是一个示例代码,展示如何获取并显示所有自定义分类法:

<?php
// 获取所有分类法
$taxonomies = get_taxonomies( array( 'public' => true, '_builtin' => false ), 'objects' );

// 检查是否有分类法
if ( ! empty( $taxonomies ) ) {
    echo '<ul>';
    // 遍历分类法并输出名称和标签
    foreach ( $taxonomies as $taxonomy ) {
        echo '<li>' . esc_html( $taxonomy->name ) . ' - ' . esc_html( $taxonomy->label ) . '</li>';
    }
    echo '</ul>';
} else {
    echo '没有找到自定义分类法。';
}
?>

代码说明:

  1. get_taxonomies() 函数
  • 第一个参数是一个数组,用于指定查询条件。'public' => true 表示只获取公开的分类法,'_builtin' => false 表示排除WordPress内置的分类法(如“分类”和“标签”)。
  • 第二个参数 'objects' 表示返回分类法对象,而不是默认的数组。
  1. 遍历分类法
  • 使用 foreach 循环遍历每个分类法对象,并输出分类法的名称 (name) 和标签 (label)。
  1. 输出结果
  • 如果有自定义分类法,它们将以列表形式显示;如果没有找到自定义分类法,将显示“没有找到自定义分类法”。

其他用法:

  • 如果你想获取所有分类法(包括内置的分类法),可以去掉 '_builtin' => false 这个条件:
  $taxonomies = get_taxonomies( array( 'public' => true ), 'objects' );
  • 如果你只想获取分类法的名称(而不是对象),可以将第二个参数设置为 'names'
  $taxonomies = get_taxonomies( array( 'public' => true, '_builtin' => false ), 'names' );

通过这些方法,你可以轻松获取并显示WordPress中的所有自定义分类法。