在WordPress中为咱们提供了很多的分类目录获取函数,下面小编来给你们总结一下分类目录获取函数实例.php
1.如何根据分类名称获取分类ID?css
要实现根据分类名称获取分类ID就必需要用到这个函数:get_cat_ID()ide
这个函数的用法以下:<?php get_cat_ID( $cat_name ) ?> wordpress
下面咱们来这个函数来进行一下简单的介绍,首先是这个函数的参数:$cat_name,分类名称默认值为"General" 其类型为字符型,可选,函数返回的值,出错时返回0,成功则返回分类ID号,类型为整数.函数
好了,下面咱们来看一下示例:oop
<?php post
$category_id = get_cat_id('Category Name'); spa
query_posts('cat='.$category_id); 日志
if (have_posts()) : while (have_posts()) : the_post(); blog
the_content();
endwhile; endif;
?>
2.如何根据分类ID获取分类的连接URL?
要想实现这个功能,必需要用到这个函数:get_category_link(),这个函数的用法以下:
<?php get_category_link( $category_id ) ?>
下面是有关这个函数的一些介绍和说明:参数:$categroy_id 分类ID号 默认值:None,类型为整数,必需,返回的值,分类URL 字符串型
示例代码以下:
<?php
$category_id = get_cat_ID( 'Category Name' );
$category_link = get_category_link( $category_id );
?>
<a href="<?php echo $category_link; ?>" title="Category Name">你的分类目录名称</a>
3.显示文章所属分类目录的连接
此功能的调用函数为:the_category(),须要强调的是:必须在主循环LOOP中使用它!切记!
其用法以下:<?php the_category( $separator, $parents );?>
对此函数进行一些必要说明:
参数:$separator 显示在分类目录连接之间的文字或字符,默认以无序列表方式排列分类目录连接.
字符串型
$parents 怎样显示子分类目录连接,字符串型,值包括:
'multiple'——显示父分类与其子分类的连接以展现"父子"关系
'single'——只显示子分类的连接,用连接文本标出"父子"关系
默认值为显示子分类连接,无标识文字,接着,咱们将举两个例子对此函数的具体用法进行一些参照:
示例一:用逗号隔开分类目录
列出分类目录,(在分类目录数量多于一个的状况下)以逗号做为分隔符.
代码以下:<p>This post is in: <?php the_category(', '); ?></p>
示例二:用箭头隔开分类目录
列出分类目录,以箭头(>)做为分隔符,(使用时请注意,有些访问者可能会将分类>分类这种格式解读为一对具备“父子”关系的分类.)
代码以下:<p>Categories: <?php the_category(' > '); ?></p>
4.显示或返回当前页面的分类目录标题
在这里咱们须要用到函数:single_cat_title()
对那些显示WordPress标签而非分类目录标题的页面(如"/tag/carceer"),该标签显示或返回标签名称,该标签只能用在WordPress主循环(loop)以外.
其基本用法以下:<?php single_cat_title( $prefix, $display ); ?>
其默认用法以下:<?php single_cat_title('prefix'=>,'display'=> true ); ?>
咱们对其参数进行一些必要的说明:
$prefix 输出时在标题前的文本信息,默认值:None,类型是字符串,可选
$display 显示标题(TRUE)或返回标题以便用在PHP中(FALSE)。默认值:TRUE,类型是布尔型 可选下面这个例子在分类目录标题后显示“当前分类:”字样:
示例以下:
<p><?php single_cat_title('当前分类目录是'); ?></p>
//output:当前分类目录是wordpress
下面这个例子将当前分类目录标题赋值给变量$current_category以用在PHP中.
示例代码以下:<?php $current_category = single_cat_title("", false); ?>
5.返回用户在当前分类目录所填写的说明信息
在这里,咱们须要用到函数:category_description()
此函数的基本用法以下:<?php echo category_description( $category ); ?>
咱们对其参数进行一些说明:
参数:$category 被返回说明信息的分类目录的数值型ID。若用户未指定分类目录,默认为当前分类目录,类型为整型
示例代码以下:
<div><?php echo category_description(3); ?></div>
//output:WordPress is a favorite blogging tool of mine and I share tips and tricks for
using WordPress here.
<div><strong><?php single_cat_title('当前分类目录'); ?>
</strong>: <?php echo category_description(); ?></div>
//output:
当前分类目录WordPress: WordPress is a favorite blogging tool of mine and I
share tips and tricks for using WordPress here.
分类目录函数wp_list_categories用法
做用:按条件获取分类目录并按参数格式化
用法:<?php wp_list_categories( $args ); ?>
默认代码以下:
$defaults = array(
‘show_option_all’ => ”,// 不列出分类连接
‘orderby’ => ‘name’,// 按照分类名排序
‘order’ => ‘ASC’, //升序排列
‘show_last_update’ => 0,// 不显示分类中日志的最新时间戳
‘style’ => ‘list’,//列表显示分类
‘show_count’ => 0,// 不显示分类日志数量
‘hide_empty’ => 1, //不显示没有日志的分类
‘use_desc_for_title’ => 1,// 显示分类描述
‘child_of’ => 0, //不限制子分类
‘feed’ => ”, //不显示feed
‘feed_image’ => ”,// 不显示feed图片
‘exclude’ => ”, //不显示该分类
‘hierarchical’ => true,// 分层次显示父/子分类
‘title_li’ => __(‘Categories’), //用“Categories”为当前分类列表的标题
‘echo’ => 1, //显示(echos) 分类
‘depth’ => 0 //不限制列表深度
);
主题中最经常使用的实例(获取全部分类目录,并按名字排序,获取深度为3,标题格式化为无,这个实例经常使用于下拉菜单中,须要相关css和js支持,若是没有css,将会出现格式问题,如全部子目录堆叠而不是下拉,可是功能没问题.
实例代码以下:
<ul id=”nav”>
<li><a href=”<?php echo get_settings(‘home’); ?>/” title=”<?php
bloginfo(‘description’); ?>”>Home</a></li>
<?php wp_list_categories(‘sort_column=name&title_li=&depth=3′); ?>
</ul>
按照分类名排序,并只显示 ID 为一、二、3和4的分类,代码以下:
wp_list_categories(‘orderby=name&include=1,2,3,4′);
按照分类名排序,并显示每一个分类的日志数,但不显示 ID 为10的分类,代码以下:
wp_list_categories(‘orderby=name&show_count=1&exclude=10′);
获取当前分类的根分类id函数
第一种:若是是分类页,系统默认有个变量$cat,就是当前分类的ID。这个比较准。
第二种:单个页面适用
代码以下:
$cat= single_cat_title('', false);
echo get_cat_ID($cat);
第三种,代码以下:
if (!is_page() && !is_home()){ $catsy = get_the_category(); $myCat = $catsy[0]->cat_ID;
$currentcategory = '¤t_category='.$myCat; } wp_list_categories
('hierarchical=1&use_desc_for_title=0&exclude=12&depth=1&orderby=id&title_li='.$currentcate
gory);
获取分类列表,不用SQL语句直接获取干净的分类目录,代码以下:
echo "<span><select name='list'>";
foreach(get_all_category_ids() as $v)
{
$cat_info=get_category($v);
echo "<option value='".$v."'>".$cat_info->name."</option>";
}
echo '</select></span>';