• Приветствую!
    В момем блоге (zzzt.ru) навигация организована через несколько виджетов с отображением категорий. При этом заголовки двух виджетов тоже является частью этой навигации и ведут на свои рубрики. Ссылку я вставил через плагин, но помимо нее мне бы еще вывести в заголовке виджета количество записей в категории.
    То есть по сути мне надо приписать к заголовку виджета код
    <?php echo get_category(ID категории)->category_count; ?>
    Чтобы при этом результат наследовал стиль заголовка виджета.

    Уверен, что есть сниппет какой-нибудь для дополнения нужного заголовка, но вот не знаю какой )

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • В принципе меня устроит и полное изменение заголовка виджета, где я кодом <a> вставлю ссылку на категорию, а после заголовка вставлю нужный php-код. Нашел вот такую тему на англоязычном форуме поддержки, но как я понял это для какого-то специального виджета событий (мероприятий). Пока не могу понять как интерпретировать этот код для себя

    Тем временем я не стою на месте в своих изысканиях.
    Гугл говорит, что у виджета есть параметры before_title и after_title. Осталось понять как изменить их для конкретных виджетов.

    Нашел сниппет для добавление bb-кодов в заголовок:

    <?php
    add_filter('widget_title', 'html_v_oglavlenii_widgeta');
    
    function html_v_oglavlenii_widgeta( $zagolovok ) {
        /* HTML теги: скобки открывающие/скобки закрывающие. */
        $zagolovok = str_replace( '[', '<', $zagolovok );
        $zagolovok = str_replace( '[/', '</', $zagolovok );
    
        /* Аналог тегов <strike> и </strike>. */
        $zagolovok = str_replace( 's]', 'strike>', $zagolovok );
        /* Аналог тегов <strong> и </strong>. */
        $zagolovok = str_replace( 'b]', 'strong>', $zagolovok );
    
        return $zagolovok;
    }
    ?>

    Интерпретировал его к своей задаче:

    function html_v_oglavlenii_widgeta( $zagolovok ) {
        /* HTML теги: скобки открывающие/скобки закрывающие. */
        $zagolovok = str_replace( '[cat5]', '<?php echo get_category(5)->category_count; ?>', $zagolovok );
    
        return $zagolovok;
    }

    Но теперь заголовок виджета Творчество [cat5] отображается вот так

    Итоговый, рабочий вариант подсказал мне добрый знающий человек на другом форуме:

    add_filter('widget_title', 'html_v_oglavlenii_widgeta');
    
    function html_v_oglavlenii_widgeta( $zagolovok ) {
        $temp = get_category(5)->category_count;
        $zagolovok = str_replace( '[cat5]', $temp, $zagolovok );
    
        return $zagolovok;
    }

    В окончательном варианте нужно было только добавить несколько переменных по аналогии:

    add_filter('widget_title', 'html_v_oglavlenii_widgeta');
    
    function html_v_oglavlenii_widgeta( $zagolovok ) {
        $c1 = get_category(5)->category_count;
        $c2 = get_category(11)->category_count;
        $zagolovok = str_replace( '[cat5]', $c1, $zagolovok );
        $zagolovok = str_replace( '[cat11]', $c2, $zagolovok );
     return $zagolovok;
    }

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Вставить код в заголовке виджета» закрыта для новых ответов.