wp_list_categories()函數使用方法|wordpress函數


  wp_list_categories()函數是將分類以鏈接的形式羅列出來,點擊分類的鏈接,就可以訪問該分類頁面。我們有時候會在一些頁面調用分類鏈接,這時這個函數就可以用上了。注意: wp_list_categories() 和 list_cats() 以及 wp_list_cats() 的使用類似,但是后面 2 個已經棄用。如果你希望不格式化輸出分類,請使用 get_categories()

<?php $args = array(
	'show_option_all'    => '',
	'orderby'            => 'name',
	'order'              => 'ASC',
	'style'              => 'list',
	'show_count'         => 0,
	'hide_empty'         => 1,
	'use_desc_for_title' => 1,
	'child_of'           => 0,
	'feed'               => '',
	'feed_type'          => '',
	'feed_image'         => '',
	'exclude'            => '',
	'exclude_tree'       => '',
	'include'            => '',
	'hierarchical'       => 1,
	'title_li'           => __( 'Categories' ),
	'show_option_none'   => __('No categories'),
	'number'             => null,
	'echo'               => 1,
	'depth'              => 0,
	'current_category'   => 0,
	'pad_counts'         => 0,
	'taxonomy'           => 'category',
	'walker'             => null
); ?>
<?php wp_list_categories( $args ); ?>

  

默認用法輸出的效果:

  • 無連接的分類
  • 根據分類名稱對分類列表進行升序排列
  • 以無序列表的樣式顯示
  • 不顯示文章數量
  • 只顯示有文章的分類
  • 設置標題屬性到分類描述
  • 子分類無限制
  • 不顯示Feed和Feed圖像
  • 不排除任何分類,並包括所有分類
  • 為當前的分類添加CSS類'current-cat'
  • 以分層縮進的方式顯示分類列表
  • 在列表的頂部顯示“分類(Categories)”作為標題
  • 沒有SQL限制('number' => 0 is not shown above)
  • 顯示(輸出)分類
  • 不限制顯示的深度
  • 所有分類
  • 使用一個新的Walker_Category 類對象 walker 來顯示列表

參數

show_option_all 

(字符串)非空值會導致如果樣式設置為列表顯示所有類別的鏈接。默認值是不顯示鏈接到所有分類。

orderby 

(字符串)以分類名稱、分類ID或文章數量等為排列依據。有效值:

  • ID
  • name - 默認
  • slug
  • count
  • term_group

order 

(字符串)分類的排序順序(升序或降序)。缺省為升序。有效值:

  • ASC – 升序(默認)
  • DESC - 降序

style

(字符串)分類列表顯示的樣式。將分類列表的方式顯示(使用<br >標簽分隔列表項)。默認設置為列表(無序列表)。有效值:

  • list – 默認
  • none

show_count 

(布爾)顯示文章數量。默認情況下不顯示文章數量。有效值:

  • 1 (True)
  • 0 (False) - 默認

hide_empty

(布爾)隱藏沒有文章的分類。  默認情況下隱藏沒有文章的分類。有效值:

  • 1 (True) – 默認
  • 0 (False)

use_desc_for_title 

(布爾)是否將分類描述作為分類鏈接中的 title 屬性,默認為 true。有效值:

  • 1 (True) – 默認
  • 0 (False)

child_of 

(整數)只顯示此參數確定的分類的子分類。此參數沒有默認值。

feed 

(字符串)顯示每個分類的 RSS-2 Feed鏈接到設置的feed文字。默認不顯示feed文字和鏈接。

feed_type 

(字符串)

feed_image 

(字符串)設置一個圖片到分類的 RSS-2 Feed鏈接。這個參數會覆蓋上面的 feed 參數。此參數沒有默認值。

exclude 

(字符串)排除一個或多個分類。使用逗號分隔每個分類的ID。參數 include 必須為空。

exclude_tree 

(字符串)排除分類樹。使用逗號分隔每個分類的ID。參數 include 必須為空。如果 hierarchical 參數 為 true ,請使用 exclude 參數替代 exclude_tree 。

include 

(字符串)只顯示特定的分類,使用逗號分隔每個分類的ID。

hierarchical

(布爾)以層級來顯示分類的子分類。默認為 true(在分類的下面顯示它們的子分類)。有效值:

  • 1 (True) – 默認
  • 0 (False)

title_li 

(字符串)設置列表的標題。默認為“Categories”。如果存在這個參數,但是值為空,將無法顯示列表。

number

(整數)設置顯示的分類數量。定義SQL的限制值。默認為不限制。

echo

(布爾) 顯示結果或保存在一個變量里。默認為 True 。有效值:

  • 1 (True) – 默認
  • 0 (False)

depth 

(整數)顯示分類的深度(即顯示多少層的子分類)。默認值為 0(顯示所有分類和子分類)。有效值:

  • 0 - 所有分類和子分類(默認)
  • -1 - 所有類別顯示在平面(不縮進)的形式(覆蓋hierarchical)。
  • 1 - 只顯示頂級分類
  • n - 根據n的具體數字來顯示對應等級的分類。

current_category 

(整數)后跟分類ID號,對此ID分類加入名為current-cat的CSS控制,用戶自定義current-cat樣式后,可用於突出顯示。

pad_counts

(布爾)計算包括子分類的鏈接或文章數。如果 show_counts 和 hierarchical 為  true ,這個參數就自動設置為  true 。有效值:

  • 1 (true)
  • 0 (false) - 默認

taxonomy 

(字符串)要返回的分類法。該參數是在 3.0 中添加的。有效值:

  • category - 默認
  • taxonomy - 或任何其他已注冊的分類法

walker 

(對象)生成列表 Walker 類。有效值:

object - an instance of a class that extends either Walker_Category or Walker

 

wp_list_categories()函數使用方法舉例

按字母順序排序分類,只包括類別ID為 16,3,9和5 的分類,你可以使用下面的代碼:

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

  根據名稱排列,顯示文章數,並且排除ID為 10 的分類:

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

  

顯示或隱藏列表的標題
title_li 參數可以設置或隱藏 wp_list_categories 函數生成的列表 的標題。默認標題為“分類(Categories)” 。如果設置為空值,就不會顯示標題。排除ID為 4 和 7 的分類,同時隱藏標題:

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

  只顯示ID為 5、9 和23 的分類,並且列表的標題改為 Poetry ,而且使用 <h2> 標簽包含:

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

  

只顯示指定分類的子分類
顯示ID為 8 的分類的子分類,根據ID排序,顯示文章數,並且將分類描述作為連接的 title屬性。注意:如果父分類沒有文章,將不顯示父分類。

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

  

移除分類計數的括號
當 show_count=1 ,每個分類的后面都將顯示文章數,同時使用括號包含。如果你要移除括號,可以使用下面的代碼

<?php
$variable = wp_list_categories('echo=0&show_count=1&title_li=<h2>Categories</h2>');
$variable = preg_replace('~\((\d+)\)(?=\s*+<)~', '$1', $variable);
echo $variable;
?>

  

顯示分類和 RSS Feed 連接
根據分類名稱進行排序,顯示文章數量,並且顯示每個分類的 RSS 訂閱鏈接:

<ul>
<?php wp_list_categories('orderby=name&show_count=1&feed=RSS'); ?>
</ul>

  使用Feed 圖標替換文本,可以使用下面的代碼:

<ul>
<?php wp_list_categories('orderby=name&show_count=1&feed_image=/images/rss.gif'); ?>
</ul>

  

顯示自定義分類法的項目
在3.0版本添加了taxonomy 參數到 wp_list_categories() 。讓你可以通過 taxonomy 參數來設置要顯示的是哪種分類法下的分類項目。比如要顯示分類法為 genre 的分類列表:

<?php 
//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   = 0;      // 1 for yes, 0 for no
$pad_counts   = 0;      // 1 for yes, 0 for no
$hierarchical = 1;      // 1 for yes, 0 for no
$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() 函數(根據名稱排序分類)。下面的例子必須使用在循環中:

<?php
// get the category IDs assigned to post
$categories = wp_get_post_categories( $post->ID, array( 'fields' => 'ids' ) );
// separator between links
$separator = ', ';
 
if ( $categories ) {
 
	$cat_ids = implode( ',' , $categories );
	$cats = wp_list_categories( 'title_li=&style=none&echo=0&include=' . $cat_ids );
	$cats = rtrim( trim( str_replace( '<br />',  $separator, $cats ) ), $separator );
 
	// display post categories
	echo  $cats;
}
?>

  

標記和樣式化分類列表
默認情況下, 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 { ... }

  wp_list_categories()函數定義文件 位於 wp-includes/category-template.php

   關鍵詞替換

            <?php $args = array(
                'hide_empty'         => 0,
                'title_li'           => '',
                'echo'               => 0,
                'depth'              => 0,
                'taxonomy'           => 'product_cat',
            ); ?>
            <?php //$navl=wp_list_categories( $args );
            echo str_replace('<ul','<img src="/lib/img/index/arrow_down.svg" alt="arrow" class="arrow"><ul', $navl);
            ?>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM