在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>';