填写您的邮件地址,订阅我们的精彩内容:

wordpress获取分类object函数get_categories()

在wordpress提供了get_categories()函数为开发者调用特定的分类信息提供可能。通过get_categories()函数,开发者可以获取任意ID、别名、名称的分类的各种信息。该函数的返回值是一个object的二维函数,在《wordpress分类栏目(category)调用函数集锦》一文中已经提到。本文详细介绍本函数的参数、用法和案例。

说明

返回与查询参数相匹配的类别对象数组。

变量与wp_list_categories基本一致,且变量可被作为数组传递,也可在查询句法中被传递。

用法

<?php?$categories?=?get_categories(parameters);??>

示例

缺省用法

<?php?$defaults?=?array(‘type’?=>?’post’,
????????????’child_of’?=>?0,
????????????’orderby’?=>?’name’,
????????????’order’?=>?’ASC’,
????????????’hide_empty’?=>?true,
????????????’include_last_update_time’?=>?false,
????????????’hierarchical’?=>?1,?
????????????’exclude’?=>?,
????????????
‘include’?=>?,
????????????’number’?=>?,
????????????
‘pad_counts’?=>?false);?>

下拉菜单

下面是一个如何创建某个类别(比如说,该类别存档了过去事件的相关信息)的子类下拉菜单的例子。这个例子也映射出 wp_get_archives下拉菜单的示例,后者是关于如何创建每月存档的下拉菜单。

假设需要显示子类的类别编号为10,分类名称为“archives”。

<select name=”event-dropdown” onchange=’document.location.href=this.options[this.selectedIndex].value;’>
<option value=””><?php echo attribute_escape(__(‘Select Event’));??></option>
<?php
$categories= get_categories(‘child_of=10’);
foreach ($categories as $cat) {
$option = ‘<option value=”/category/archives/’.$cat->category_nicename.'”>’;
$option .= $cat->cat_name;
$option .= ‘ (‘.$cat->category_count.’)’;
$option .= ‘</option>’;
echo $option;
}
?>
</select>

参数

type(字符)

需检索的分类类型

  • post — 默认
  • link

child_of (整数)

仅显示标注了编号的分类的子类。该参数无默认值。使用该参数时应将hide_empty参数设为false。

orderby(字符)

将分类按字母顺序或独有分类编号进行排序。默认为按分类 编号排序。有效的值包括:

  • ID — 默认
  • name

order(字符)

为类别排序(升序或降序)。默认升序。可能的值包括:

  • asc — 默认
  • desc

hide_empty(布尔值)

触发显示没有文章的分类。默认值为true(隐藏空类别)。有效的值包括:

  • 1(true)— 默认
  • 0(false)

include_last_update_time(布尔值)

功能不确定

  • 1 (true)
  • 0(false)— 默认

hierarchical(布尔值)

将子类作为内部列表项目(父列表项下)或内联。默认为true(显示父列表项下的子类)。有效值包括:

  • 1 (true)— 默认
  • 0 (false)

exclude(字符)

除去wp_list_categories生成的列表中一个或多个分类。这个参数有一个用逗号分开的类别ID的列表,以升序排列。 参见示例

include(字符)

只包含wp_list_categories 生成的若干类别。这个参数这个参数有一个用逗号分开的类别ID的列表,以升序排列。 参见示例

  • list — 默认
  • none

number(字符)

将要返回的类别数量

pad_counts(布尔值)

通过子类中的项来计算链接或文章。有效值包括:

  • 1 (true)
  • 0(false)— 默认

案例:

获取子分类ID为10的分类的各种信息:

$categories=? get_categories(‘child_of=10’);
? foreach ($categories as $cat) {
? $option = ‘<option value=”/category/archives/’.$cat->category_nicename.'”>’;
$option .= $cat->cat_name;
$option .= ‘ (‘.$cat->category_count.’)’;
$option .= ‘</option>’;
echo $option;
? }

列出该分类下的文章数
<?php
$args=array(
‘orderby’ => ‘name’,
‘order’ => ‘ASC’
);
$categories=get_categories($args);
foreach($categories as $category) {
echo ‘<p>Category: <a href=”‘ . get_category_link( $category->term_id ) . ‘” title=”‘ . sprintf( __( “View all posts in?%s” ), $category->name ) . ‘” ‘ . ‘>’ . $category->name.'</a> </p> ‘;
echo ‘<p> Description:’. $category->description . ‘</p>’;
echo ‘<p> Post Count: ‘. $category->count . ‘</p>’; }
?>

在foreach中可以有以下这些键值

$category->term_id
$category->name
$category->slug
$category->term_group
$category->term_taxonomy_id
$category->taxonomy
$category->description
$category->parent
$category->count
$category->cat_ID
$category->category_count
$category->category_description
$category->cat_name
$category->category_nicename
$category->category_parent

主要参考:
http://codex.wordpress.org/Function_Reference/get_categories
http://www.wordpress.la/codex-%E5%B8%B8%E7%94%A8%E5%87%BD%E6%95%B0-get_categories%28%29.html

下面我简单说几句