WordPress中获取指定分类及其子分类下的文章数目_php实例
获取特定分类文章数
有时候我们想获取某个分类(category)下的文章数目,以便在博客的某个地方显示出来。下面就提供几个获取特定分类的文章数的方法,你可以根据个人喜好选择:
方法一:
将以下PHP代码放置在主题目录下的functions.php中:
function wt_get_category_count($input = '') { global $wpdb; if($input == '') { $category = get_the_category(); return $category[0]->category_count; } elseif(is_numeric($input)) { $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->term_taxonomy.term_id=$input"; return $wpdb->get_var($SQL); } else { $SQL = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->terms.slug='$input'"; return $wpdb->get_var($SQL); } }
然后在需要的地方调用该函数即可,该函数提供三种调用方式:
1、在主循环中调出该函数,且不提供参数,则返回第一个分类的文章数:
<?php echo wt_get_category_count(); ?>
2、提供的参数为数字,且该数字为分类的ID号,则返回对应ID的分类的文章数:
<?php echo wt_get_category_count(1); ?>
3、提供分类的别名,则返回对应缩略名(别名)的分类文章数:
<?php echo wt_get_category_count('hello-world'); ?>
该函数对于含有子分类的分类,文章数统计上会有稍许误差。对于分类文章数为0的情况统计得也不是很好。
方法二:
其实我们可以直接使用WordPress的内置函数wp_list_categories(),只是传递函数的时候注意一下就行了:
<?php echo strip_tags(wp_list_categories('include=3&hide_empty=0&use_desc_for_title =0&echo=0&show_count=1&style=none&hierarchical =0&title_li=')); ?>
参数include的等号后面3改成你想要统计文章数的分类ID即可,最终输出形式为 分类名称(文章数)
方法三:
使用WordPress内置函数get_category_by_slug()
<?php // 将以下category-name改成你的分类别名即可 echo get_category_by_slug('category-name')->count; ?>
方法四:
使用WordPress内置函数get_category
<?php // 将以下cat_ID改成你的分类ID即可 echo get_category(cat_ID)->count; ?>
总结:
方法一、三、四可以获取到单纯的文章数量,就代码量来说,方法一的代码是最多的,方法三、四的代码是最少的。就执行效率来说,方法一执行时间约为0.002秒,效率最高;方法四次之,执行时间约为0.004秒;方法三最差,执行时间约为0.008秒。执行效率之所以会有这么大的差异,原因在于方法一专注于一件事,就是查找文章数量,只执行一次数据库查询,而方法三和方法四的是WordPress内置函数,虽然只需一行代码,但是他们并不是专门为查询分类文章数而设计的,而是用于获取分类的全部信息!另外,这三种方法都不会统计子分类下的文章数。
以上所有方法不存在孰优孰劣之分,执行时间所差的几毫秒根本感觉不出来,你可以根据个人喜好来选择相关的方法。
获取指定分类及其子分类文章数
可能有些时候我们还要获取指定分类及其所有子分类的文章数,下面我们来看一下相关实现办法。
首先,定义实现函数,将以下php代码复制到当前主题的functions.php中:
function ludou_get_cat_postcount($id) { // 获取当前分类信息 $cat = get_category($id); // 当前分类文章数 $count = (int) $cat->count; // 获取当前分类所有子孙分类 $tax_terms = get_terms('category', array('child_of' => $id)); foreach ($tax_terms as $tax_term) { // 子孙分类文章数累加 $count +=$tax_term->count; } return $count; }
使用示例
好了,函数定义完毕,在使用的时候只需给ludou_get_cat_postcount函数传递分类id参数即可,下面是使用示例:
<?php echo 'ID为123的分类及其子孙分类的文章数量为:' . ludou_get_cat_postcount(123); ?>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP和Flutter是行動端開發的流行技術。 Flutter勝在跨平台能力、效能和使用者介面,適合需要高效能、跨平台和自訂UI的應用程式。 PHP則適用於效能較低、不跨平台的伺服器端應用程式。

透過編輯 style.css 文件,您可以輕鬆修改 WordPress 頁面寬度:編輯 style.css 文件,新增 .site-content { max-width: [您的首選寬度]; }。修改 [您的首選寬度] 以設定頁面寬度。儲存變更並清除快取(可選)。

WordPress 文章儲存在 /wp-content/uploads 資料夾中。此資料夾使用子資料夾對不同類型的上傳進行分類,包括按年、月和文章 ID 組織的文章。文章檔案以純文字格式 (.txt) 存儲,檔案名稱通常包含其 ID 和標題。

在WordPress 中建立產品頁面:1. 建立產品(名稱、描述、圖片);2. 自訂頁面範本(新增標題、描述、圖片、按鈕);3. 輸入產品資訊(庫存、尺寸、重量);4 .建立變體(不同顏色、尺寸);5. 設定可見性(公開或隱藏);6. 啟用/停用評論;7.預覽並發布頁面。

WordPress 範本檔案位於 /wp-content/themes/[主題名稱]/ 目錄。它們用於決定網站的外觀和功能,包括頁首(header.php)、頁尾(footer.php)、主模板(index.php)、單篇文章(single.php)、頁(page.php)、檔案(archive.php)、類別(category.php)、標籤(tag.php)、搜尋(search.php)和404 錯誤頁面(404.php)。透過編輯和修改這些文件,可以自訂 WordPress 網站的外

在 WordPress 中搜尋作者:1. 登入管理面板後,導覽至“文章”或“頁面”,使用搜尋欄輸入作者姓名,在“篩選器”中選擇“作者”。 2. 其他技巧:使用通配符擴大搜尋範圍,使用運算子組合條件,或輸入作者 ID 以搜尋文章。

WordPress 採用 PHP 語言開發,作為其核心程式語言,用於處理資料庫互動、表單處理、動態內容產生和使用者請求。 PHP 被選擇的原因包括跨平台相容性、易於學習、活躍社群以及豐富的函式庫和框架。除了 PHP,WordPress 還使用 HTML、CSS、JavaScript、SQL 等語言來增強其功能。

最穩定的 WordPress 版本是最新版本,因為它包含最新的安全性修補程式、增強效能並引入新功能和改進。為了更新到最新版本,請登入 WordPress 儀表板,前往「更新」頁面並點擊「立即更新」。
