Подсчёт количества постов в 1 рубрике WordPress

Вставил в functions.php вот такой код, чтобы можно потом было вывести шорткод, но он не работает, что пошло не так?

function count_cat_post($category) {
  if(is_string($category)) {
    $catID = get_cat_ID($category);
  }
  elseif(is_numeric($category)) {
    $catID = $category;
  } else {
    return 0;
  }
  $cat = get_category($catID);
  return $cat->count;
}

function wp_my_shortcode( $atts ) {
  echo  count_cat_post('29');
}
add_shortcode( 'my_shortcode_output', 'wp_my_shortcode');

Ответы (1 шт):

Автор решения: Darth KYL

В вашей функции count_cat_post есть проверка на переданный параметр если параметр строка то вы ищите id категории через ее название используя функцию get_cat_ID, но так как вы передаете в шорткод id категории то аргумент функции count_cat_post должен быть типом integer соответственно вместо строки '29' нужно передать число 29, пример ниже:

add_shortcode( 'my_shortcode_output', 'wp_my_shortcode');

function wp_my_shortcode( $atts ) {
  return count_cat_post( 29 );
}

echo do_shortcode( '[my_shortcode_output]' );

подробнее о создании шорткодов вы можете прочить по этой сслыке

→ Ссылка