PHP текст на основе количества сообщений в категории - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь создать шорткод WordPress, который должен отображать текст, содержащий количество сообщений в указанной категории c, и если категория пуста, он должен вернуть текст, говорящий о том, что категория пуста.

Шорткод, который я сделал, пока работает. Единственная проблема заключается в том, что он продолжает возвращать 0 сообщений, даже несмотря на то, что в этой категории c * есть многочисленные сообщения.

Я пробовал разные функции, такие как is_category () и get_category (), но ни одна из них не работает. Имеет ли какое-то значение то, что категория связана с пользовательским типом записи? Слизняк типа сообщения - проект между прочим.

function imbro_aaben_projekt_shortcode() {
    $category = get_category('aaben-projekt');
    $theCount = $category->count;

    if ( $theCount > 0 ){

        return 'Total: ' . $theCount . ' posts in this category';

    } else {

        return 'There are no posts in this category';

    }
}

add_shortcode( 'imbro_empty', 'imbro_aaben_projekt_shortcode' );

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Мне удалось найти решение моего собственного вопроса, используя WP_QUERY вместо get_category () и post_count вместо просто считать:

function imbro_aaben_projekt_shortcode() {
       $args = array(
       'cat' => 1, // category id
       'post_type' => 'projekt'
    );
    $the_query = new WP_Query( $args );
    $theCount = $the_query->post_count;

    if ( $theCount > 0 ){

        return 'Total: ' . $theCount . ' posts in this category';

    } else {

        return 'There are no posts in this category';

    }
}

add_shortcode( 'imbro_empty', 'imbro_aaben_projekt_shortcode' );
0 голосов
/ 08 февраля 2020

Другим способом достижения требуемого результата является использование WP_QUERY , как показано ниже.

   $args = array(
       'cat' => 4, // category id
       'post_type' => 'post'
    );
    $the_query = new WP_Query( $args );
    echo $the_query->found_posts;
...