Получить количество сообщений - PullRequest
0 голосов
/ 24 февраля 2020

Я использую Wordpress и тему Anima. Вот код меню:

<nav id = "access" role = "navigation" aria-label = "<? php esc_attr_e ('Primary Menu', 'anima')?>" <? php cryout_schema_microdata ('menu'); ? >>
<? php cryout_access_hook ();?>
</nav>

Это моет сайт: https://simumods.com

Как я могу убедиться, что в подкатегориях American Truck Simulator, Евро Truck Simulator 2 показывает, в какой категории сколько сообщений?

Ответы [ 2 ]

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

Я решил проблему с этим кодом

add_filter('the_title', 'wpse165333_the_title', 10, 2);
function wpse165333_the_title($title, $post_ID)
{
    if( 'nav_menu_item' == get_post_type($post_ID) )
    {
        if( 'taxonomy' == get_post_meta($post_ID, '_menu_item_type', true) && 'category' == get_post_meta($post_ID, '_menu_item_object', true) )
        {
            $category = get_category( get_post_meta($post_ID, '_menu_item_object_id', true) );
            $title .= sprintf(' (%d)', $category->count);
        }
    }
    return $title;
}
0 голосов
/ 24 февраля 2020

Хорошо, так что это не так уж сложно, сначала мы просто проверим, является ли пункт меню таксономией, затем получим счетчик и отобразим его!

function ggstyle_menu_item_count( $output, $item, $depth, $args ) {
    // Check if the item is a Category or Custom Taxonomy
    if( $item->type == 'taxonomy' ) {
        $object = get_term($item->object_id, $item->object);

        // Check count, if more than 0 display count
        if($object->count > 0)
            $output .= "<span class='menu-item-count'>".$object->count."</span>";
    }    

    return $output;
}
add_action( 'walker_nav_menu_start_el', 'ggstyle_menu_item_count', 10, 4 );

Чтобы получить количество элементов для вывода в <a> пункта меню, нам нужно разделить вывод $ и вставить наш контент, чтобы собрать его обратно.

function ggstyle_menu_item_count( $output, $item, $depth, $args ) {
    // Check if the item is a Category or Custom Taxonomy
    if( $item->type == 'taxonomy' ) {
        $object = get_term($item->object_id, $item->object);

        // Check count, if more than 0 display count
        if($object->count > 0) {
            $output_new = '';
            $output_split = str_split($output, strpos($output, '</a>') );
            $output_new .= $output_split[0] . "<span class='menu-item-count'>".$object->count."</span>" . $output_split[1];
            $output = $output_new;
        }
    }    

    return $output;
}
add_action( 'walker_nav_menu_start_el', 'ggstyle_menu_item_count', 10, 4 );

Повторяющаяся запись: https://wordpress.stackexchange.com/questions/229767/show-posts-count-for-categories-and-tags-in-wp-nav-menu

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...