WordPress分类列表函数:wp_list_categories用法及参数详解举例

http://www.511yj.com/wordpress-wp-categories.html

注意:

1、 wp_list_categories() 和 list_cats() 以及 wp_list_cats() 的使用类似,但是后面 2 个已经弃用。

2、如果你希望不格式化输出分类,请使用 get_categories()

3、因为 WordPress 中内置扩展的小工具功能,所以我们不经任何函数就可以在边栏或是其他我们想要的位置显示一个分类列表,所以wp_list_categories函数就很少有人用到。

4、该函数使用起来有点类似于wp_list_bookmarks()

5、该函数输出 应当包含在 ul 标签内

使用方法

wp_list_categories( string|array $args = ‘‘ )

默认用法

<?php
 wp_list_categories( $args );
$args = array(
 ‘show_option_all‘  => ‘‘,//是否列出分类链接
 ‘orderby‘      => ‘name‘,//按名称排列
 ‘order‘       => ‘ASC‘,//升、降序
 ‘style‘       => ‘list‘,//是否用列表(ul>li)
 ‘show_count‘     => 0,//是否显示文章数量
 ‘hide_empty‘     => 1,//是否显示无日志分类
 ‘use_desc_for_title‘ => 1,//是否显示分类描述
 ‘child_of‘      => 0,//是否限制子分类
 ‘feed‘        => ‘‘,//是否显示rss
 ‘feed_type‘     => ‘‘,//rss类型
 ‘feed_image‘     => ‘‘,//是否显示rss图片
 ‘exclude‘      => ‘‘,//排除分类的ID,多个用‘,(英文逗号)‘分隔
 ‘exclude_tree‘    => ‘‘,//排除分类树,即父分类及其下的子分类
 ‘include‘      => ‘‘,//包括的分类
 ‘hierarchical‘    => true,//是否将子、父分类分级
 ‘title_li‘      => __( ‘Categories‘ ),//列表标题的名称
 ‘show_option_none‘  => __(‘No categories‘),//无分类时显示的标题
 ‘number‘       => null,//显示分类的数量
 ‘echo‘        => 1,//是否显示,显示或者返回字符串
 ‘depth‘       => 0,//层级限制
 ‘current_category‘  => 0,//添加一个没有的分类
 ‘pad_counts‘     => 0,//这个我也不明白
 ‘taxonomy‘      => ‘category‘,//使用的分类法
 ‘walker‘       => null//用于显示的类
?>

用法举例

1、包含或排除某分类:
意思就是把分类ID为3,5,9,16的分类按名称顺序来排序:

<?php wp_list_categories(‘orderby=name&include=3,5,9,16‘); ?>

或者

<ul>
    <?php wp_list_categories( array(
        ‘orderby‘ => ‘name‘,
        ‘include‘ => array( 3, 5, 9, 16 )
    ) ); ?>
</ul>

2、按名称排列,并显示每个分类的日志总数,并不显示ID为10的分类:

<?php wp_list_categories(‘orderby=name&show_count=1&exclude=10‘); ?>

或者

<ul>
    <?php wp_list_categories( array(
        ‘orderby‘    => ‘name‘,
        ‘show_count‘ => true,
        ‘exclude‘    => array( 10 )
    ) ); ?>
</ul>

3、显示或隐藏列表标题:
过滤ID为4和7的分类,并且列表标题设置为“511遇见”:

<?php wp_list_categories(‘exclude=4,7&title_li=511遇见‘); ?>

4、列表中只显示ID为5、9、23的分类,并把列表标题改为 Poetry (下面的格式是为了把“要显示的数据”和“标签参数区分开来”)

<?php wp_list_categories(‘include=5,9,23&title_li=<h2>‘ . __(‘Poetry‘) . ‘</h2>‘ ); ?>

  或者

<ul>
    <?php wp_list_categories( array(
        ‘include‘  => array( 5, 9, 23 ),
        ‘title_li‘ => ‘<h2>‘ . __( ‘Poetry‘, ‘textdomain‘ ) . ‘</h2>‘
    ) ); ?>
</ul>

title_li参数设置或隐藏一个标题或标题wp_list_categories生成的类别列表。它默认为”(__(类别)”,即它显示这个词“类别”列表的标题。如果这个参数设置为null或空值,不显示标题。下面的示例代码不包括类别id 4和7和隐藏列表标题:

<ul>
    <?php wp_list_categories( array(
        ‘exclude‘  => array( 4,7 ),
        ‘title_li‘ => ‘‘
    ) ); ?>
</ul>

5、只显示指定分类的子分类

显示ID为 8 的分类的子分类,根据ID排序,显示文章数,并且将分类描述作为连接的 title属性。注意:如果父分类没有文章,将不显示父分类。

<ul>
<?php wp_list_categories(‘orderby=id&show_count=1&use_desc_for_title=0&child_of=8‘); ?>
</ul>

或者:

<ul>
    <?php wp_list_categories( array(
        ‘orderby‘            => ‘id‘,
        ‘show_count‘         => true,
        ‘use_desc_for_title‘ => false,
        ‘child_of‘           => 8
    ) ); ?>
</ul>

6、移除分类计数的括号
当 show_count=1 ,每个分类的后面都将显示文章数,同时使用括号包含。如果你要移除括号,可以使用下面的代码

<ul>
<?php

$variable = wp_list_categories( array(
    ‘echo‘ => false,
    ‘show_count‘ => true,
    ‘title_li‘ => ‘<h2>‘ . __( ‘Categories‘, ‘textdomain‘ ) . ‘</h2>‘
) );

$variable = preg_replace( ‘~\((\d+)\)(?=\s*+<)~‘, ‘$1‘, $variable );
echo $variable;
?>
</ul>

7、显示分类和 RSS Feed 连接
根据分类名称进行排序,显示文章数量,并且显示每个分类的 RSS 订阅链接:

<ul>
<ul>
    <?php wp_list_categories( array(
        ‘orderby‘    => ‘name‘,
        ‘show_count‘ => true,
        ‘feed‘       => ‘RSS‘
    ) ); ?>
</ul>
</ul>

使用Feed 图标替换文本,可以使用下面的代码:

<ul>
    <?php wp_list_categories( array(
        ‘orderby‘    => ‘name‘,
        ‘show_count‘ => true,
        ‘feed_image‘ => ‘/images/rss.gif‘
    ) ); ?>
</ul>

显示自定义分类法的项目:

在3.0版本添加了taxonomy 参数到  wp_list_categories() 。让你可以通过 taxonomy 参数来设置要显示的是哪种分类法下的分类项目。比如要显示分类法为 genre 的分类列表:

// List terms in a given taxonomy using wp_list_categories (also useful as a widget if using a PHP Code plugin)

$taxonomy     = ‘genre‘;
$orderby      = ‘name‘;
$show_count   = false;
$pad_counts   = false;
$hierarchical = true;
$title        = ‘‘;

$args = array(
  ‘taxonomy‘     => $taxonomy,
  ‘orderby‘      => $orderby,
  ‘show_count‘   => $show_count,
  ‘pad_counts‘   => $pad_counts,
  ‘hierarchical‘ => $hierarchical,
  ‘title_li‘     => $title
);
?>
<ul>
    <?php wp_list_categories( $args ); ?>
</ul>

显示文章对应的分类:

根据父-子关系来排序文章的分类。类似于 get_the_category_list() 函数(根据名称排序分类)。这个例子必须使用内循环。

$taxonomy = ‘category‘;

// Get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( ‘fields‘ => ‘ids‘ ) );

// Separator between links.
$separator = ‘, ‘;

if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) {

    $term_ids = implode( ‘,‘ , $post_terms );

    $terms = wp_list_categories( array(
        ‘title_li‘ => ‘‘,
        ‘style‘    => ‘none‘,
        ‘echo‘     => false,
        ‘taxonomy‘ => $taxonomy,
        ‘include‘  => $term_ids
    ) );

    $terms = rtrim( trim( str_replace( ‘<br />‘,  $separator, $terms ) ), $separator );

    // Display post categories.
    echo  $terms;
}

标记和样式化分类列表

默认情况下, wp_list_categories() 生成的是无序列表(ul),使用 li 标签来包含每个分类,而且列表的标题为"Categories"。

你可以通过设置 title_li 为空值来隐藏标题。你可以自定义包装 有序列表或无序列表。如果你不需要以列表输出分类,可以将 style 参数设置为 none。

你可以根据下面的CSS选择器来样式化输出:

li.categories { ... }  /* outermost list item */
li.cat-item { ... }
li.cat-item-7 { ... }  /* category ID #7, etc */
li.current-cat { ... }
li.current-cat-parent { ... }
ul.children { ... }

小结

1、官方文档:https://developer.wordpress.org/reference/functions/wp_list_categories/

2、因为我们没有必要再使用这个函数,最让我们心动的就是最后这个CSS的改变,这样可以让你更灵活的显示在前台,比如有人问,如何去掉函数中封装的 li 标签,这样问的原因我猜主要是它的布局不是采用了 li 标签,或者一些样式加布进去,所以你多多研究一下总后一个例子还是很有必要的。

3、如何去掉li

<?php wp_list_categories(‘style=none‘); ?>
时间: 2024-11-09 00:50:38

WordPress分类列表函数:wp_list_categories用法及参数详解举例的相关文章

Linux挂载命令mount用法及参数详解

Linux挂载命令mount用法及参数详解 导读 mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了. 挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式:mount [-t vfstype] [-o options] device dir 1.-t vfstype 指定文件系统的类型,通常不必指定,m

用PHP Email发送表单内容(3)-mail()函数的几个参数详解

这一节主要讲的是mail函数. 首先阅读手册,看看mail函数的基本形式:http://php.net/manual/en/function.mail.php mail();函数接受几个参数: 第一个参数:收件人 $to = ‘[email protected]’; 或者我们有多个收件人: $to = ‘[email protected]’,’[email protected]’; 或者我们还可以加上收件人的名字: $ = ‘david <[email protected]>,james &l

curl库pycurl实例及参数详解

pycurl是功能强大的python的url库,是用c语言写的,速度很快,比urllib和httplib都快. 今天我们来看一下pycurl的用法及参数详解 常用方法: pycurl.Curl() #创建一个pycurl对象的方法 pycurl.Curl().setopt(pycurl.URL, http://www.***.com) #设置要访问的URL pycurl.Curl().setopt(pycurl.MAXREDIRS, 5) #设置最大重定向次数 pycurl.Curl().set

wordpress分类目录函数:wp_list_cats参数详解

今天修改主题模板时相直接调用分类目录,查了一下分类目录函数wp_list_cats(); WordPress分类目录常用格式 <?php wp_list_cats(“sort_column=ID&hide_empty=0&optioncount=1″);?> 该函数表示:分类目录按ID排列,不显示没有文章的分类,显示分类目录下的文章数量 wp_list_cats函数参数如下: sort_column默认值为ID,可选ID 或 name,分别表示按 ID 值或分类名称排序sort

C语言中的system函数参数详解

http://blog.csdn.net/pipisorry/article/details/33024727 函数名: system 功   能: 发出一个DOS命令 用   法: int system(char *command); system函数已经被收录在标准c库中,可以直接调用 system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()

Oracle 时间,日期 类型函数及参数详解

ORACLE字符数字日期之间转化 Java代码 24 小时的形式显示出来要用 HH24 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; to_date() function 1. 日期格式参数 含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到 9 个字符 DD 月中的第

PHP date函数参数详解

PHP date函数参数详解 作者: 字体:[增加 减小] 类型:转载 time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧 不过这样方便计算, 要找出前一天的时间就是 time()-60*60*24; 要找出前一年的时间就是 time()*60*60*24*365 那么如何把这个数字换成日期格式呢,就要用到date函数了 $t=time();  echo date("Y-m-d H:i:s",$t); 第一个参数的格式分别表示: a -

CGBitmapContextCreate函数参数详解

CGBitmapContextCreate函数参数详解 函数原型: CGContextRef CGBitmapContextCreate ( void *data,   size_t width,   size_t height,   size_t bitsPerComponent,   size_t bytesPerRow,   CGColorSpaceRef colorspace,   CGBitmapInfo bitmapInfo ); 参数: data                  

PHP CURL参数详解

PHP CURL参数详解 curl用法:cookie及post一.cookie用法 <?php $cookie_jar = tempnam('./tmp','cookie'); // login $c=curl_init('http://login_url?username=... curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_jar); curl_exec($c);