>  기사  >  백엔드 개발  >  WordPress_php 예제에서 지정된 카테고리 및 하위 카테고리 아래의 기사 수를 가져옵니다.

WordPress_php 예제에서 지정된 카테고리 및 하위 카테고리 아래의 기사 수를 가져옵니다.

WBOY
WBOY원래의
2016-05-16 20:01:111248검색

특정 카테고리의 기사 수 가져오기

때로는 블로그 어딘가에 표시될 수 있도록 특정 카테고리의 기사 수를 가져오고 싶을 때가 있습니다. 특정 카테고리의 기사 수를 확인하는 방법은 다음과 같습니다. 개인 취향에 따라 선택할 수 있습니다.

방법 1:

테마 디렉토리의 function.php에 다음 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. 메인 루프에서 이 함수를 호출하고 매개변수를 제공하지 않으면 첫 번째 카테고리의 기사 수가 반환됩니다.

<&#63;php echo wt_get_category_count(); &#63;>

2. 제공된 매개변수는 숫자이고, 숫자는 카테고리의 ID 번호이며, ID에 해당하는 카테고리의 기사 수를 반환합니다.

<&#63;php echo wt_get_category_count(1); &#63;>

3. 카테고리 별칭이 제공되면 해당 약어(별명)에 해당하는 카테고리 기사 개수가 반환됩니다.

<&#63;php echo wt_get_category_count('hello-world'); &#63;>

이 기능은 하위 카테고리를 포함하는 카테고리의 기사 수에 약간의 통계적 오류가 있습니다. 분류된 기사 수가 0이면 통계가 별로 좋지 않습니다.

방법 2:

실제로 WordPress의 내장 함수 wp_list_categories()를 직접 사용할 수 있습니다. 함수를 전달할 때 주의하세요.

<&#63;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=')); &#63;>

include 매개변수에서 등호 뒤의 3을 기사 수를 계산하려는 카테고리 ID로 변경합니다. 최종 출력 형식은 카테고리 이름(기사 수)입니다.

방법 3:

WordPress 내장 함수 get_category_by_slug() 사용

<&#63;php
 // 将以下category-name改成你的分类别名即可
 echo get_category_by_slug('category-name')->count; 
&#63;>

방법 4:

WordPress 내장 함수 get_category 사용

<&#63;php
 // 将以下cat_ID改成你的分类ID即可
 echo get_category(cat_ID)->count; 
&#63;>

요약:

방법 1, 3, 4는 코드의 양으로 보면 방법 1이 가장 많은 코드를 갖고, 방법 3과 4가 가장 적은 수의 기사를 얻을 수 있습니다. 실행 효율성 측면에서 볼 때, 방법 1의 실행 시간은 약 0.002초로 가장 효율적이며, 방법 3의 실행 시간은 약 0.004초로 가장 짧습니다. 약 0.008초. 이렇게 실행 효율의 차이가 큰 이유는 방법 1은 기사 수를 구하는 한 가지에만 집중하고 데이터베이스 쿼리만 수행하는 반면, 방법 3, 4는 워드프레스 내장 기능이지만, 단 한 줄의 코드만 필요합니다. 그러나 분류된 항목의 수를 쿼리하기 위해 특별히 설계된 것이 아니라 분류에 대한 모든 정보를 얻기 위해 설계되었습니다. 또한 이 세 가지 방법은 하위 카테고리의 기사 수를 계산하지 않습니다.

위의 방법 중 어떤 것이 더 좋다, 나쁘다의 차이는 없습니다. 몇 밀리초의 실행 시간 차이는 전혀 느껴지지 않습니다. 개인 취향에 따라 해당 방법을 선택하면 됩니다.

지정된 카테고리 및 하위 카테고리의 기사 수를 가져옵니다

특정 카테고리와 모든 하위 카테고리의 기사 수를 가져와야 하는 경우가 있을 수 있습니다. 관련 구현 방법을 살펴보겠습니다.
먼저 구현 함수를 정의하고 다음 PHP 코드를 현재 테마의 function.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 매개변수만 전달하면 됩니다.

<&#63;php
 echo 'ID为123的分类及其子孙分类的文章数量为:' . ludou_get_cat_postcount(123);
&#63;>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.