在WordPress中為我們提供了不少的分類目錄獲取函數,下面小編來給大家總結一下分類目錄獲取函數實例.
1.如何根據分類名稱獲取分類ID?
要實現根據分類名稱獲取分類ID就必須要用到這個函數:get_cat_ID()
這個函數的用法如下:<?php get_cat_ID( $cat_name ) ?>
下面我們來這個函數來進行一下簡單的介紹,首先是這個函數的參數:$cat_name,分類名稱默認值為"General" 其類型為字符型,可選,函數返回的值,出錯時返回0,成功則返回分類ID號,類型為整數.
好了,下面我們來看一下示例:
- <?php
- $category_id = get_cat_id('Category Name');
- query_posts('cat='.$category_id);
- if (have_posts()) : while (have_posts()) : the_post();
- 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 為1、2、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>';
新聞熱點
疑難解答
圖片精選