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

wordpress分类栏目(category)调用函数集锦

861

乌徒帮自主研发的SEO TDK插件可以人性化的实现wordpress的title、keywords、description的设置,解除了新手们为处理wordpress的标题的烦恼,详情请看《WordPress SEO插件SEO TDK:一次性帮你解决Title、Keywords、Description》。


 

我们在wordpress的主题制作中会遇到很多需要对分类栏目(category)进行调用的方法,例如调用对应分类ID的分类名称及描述,根据分类名称调用别名等。本文较为全面的讲解wordpress中于分类栏目相关的各种函数和方法,通过本文的学习,你可以在今后的模板开发中完全自主的操作和调用分类信息。阅读本文的同时,你可以参考《wordpress函数大全:最简单最方便最全面的wordpress函数》《WordPress文章、栏目及他们关系的数据库表初步讲解》这两篇文章,从而或许更多的相关信息。本文花了一个晚上写作编辑完成,很是辛苦,希望朋友们积极参与文章讨论。另外,你可以通过“http://codex.wordpress.org/Function_Reference/is_category”(最后这里是函数名)这样的方法查看wordpress手册。

1、判断分类函数:判断该页是否为分类页

is_archive()、is_category()、is_paged()、in_category()

上面这三个函数可以帮助你判断访问的页面是否为归档(按时间)页、分类页或翻页的非第一页。一般的使用方法如“if(is_category()) echo ‘这是分类页’;”。在判断中,如果需要判断是否为特定ID或名称的分类,可以加入一个数组参数,如果is_category(array(9,’blue-cheese’,’Stinky Cheeses’));参数中可以是ID,也可以是分类名称(不是别名)。in_category()和is_category()用法一样,但意思和效果不一样。is_category()是判断页面,而in_category()判断的是文章,即该文章是否是ID或分类名为blue-cheese的文章。因此is_category()一般用在loop循环外面,而in_category()用在loop循环里居多。然而,只有当在single.php模板的文章页内,可以将in_category()放在loop循环外,判断该文章是否属于某个或某些分类。

2、根据分类名称获取分类ID函数:获取分类的ID

get_cat_ID($catname)

首先你要且只有获悉分类的分类名称,然后使用该函数。

3、根据分类ID获取分类的链接地址

get_category_link( $category_id )

有且只有获悉分类ID之后,才能使用该函数。当然,你可以使用上文的get_cat_ID()函数来先获取分类ID。

4、显示文章的分类信息

the_category(), the_category_rss(), single_cat_title(), category_description()、get_category_link()

the_category(?$separator,?$parents,?$post_id?):其中$separator指在多个分类的时候,两个分类之间用什么分隔如’, ‘这种方式,或直接给个空格;$parents指如果该分类是二级分类怎么显示,如果填写参数’multiple’则显示为“父分类/该分类”及其链接,如果填写参数’single’或不填,则只显示该分类及链接;$post_id指指定ID的文章,一般不填,指当前文章。

the_category_rss()指与rss相关,一般很少用,请看http://codex.wordpress.org/Function_Reference/the_category_rss。用的比较多的可能是get_the_category_rss()。

single_cat_title(?$prefix,?$display?):$prefix指输出分类名称前面要加点什么东西,如加入一个h2标题标签;$display默认为true,即直接显示分类标题,如果填入false的话,就赋值给某变量,例如可以用$cat_title=single_cat_title(”,false);来获取当前文章的分类名称。

echo category_description( $category_id ):$category_id不填为当前文章。注意前面需要加echo来显示分类描述。你可以学习上面的方法用$cat_des来接收分类描述,官方还提供了echo category_description( get_category_by_slug(‘category-slug’)->term_id )的用法。

get_category_link($category_id):如果不填入分类ID作为参数,那么显示当前文章的分类的链接。

下面我简单说几句