Поддержка Проблемы и решения Добавить счетчик постов к ссылке

  • Дано — одиночная ссылка в сайдбаре на все посты, называется «Все посты».
    Нужно чтобы рядом с этой ссылкой отображалось количество всех опубликованных статей.
    Виджет Рубрики (Категории) не имеет ссылки на все статьи, к сожалению.

    • Тема изменена 5 лет, 11 месяцев назад пользователем crowd.
Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Нужно чтобы рядом с этой ссылкой отображалось количество всех опубликованных статей.

    wp_count_posts

    $published_posts = $count_posts->publish;
    echo '<a href=".."> все посты ('.$published_posts.' шт)</a>';

    Виджет Рубрики (Категории) не имеет ссылки на все статьи, к сожалению.

    А как Вы представляете себе «все посты»? Это же ссылка на ленту. Ну или на главную, если у Вас стандартный блог. Эта ссылка итак есть (должна быть) в меню.

    • Ответ изменён 5 лет, 11 месяцев назад пользователем SeVlad.

    Спасибо. Я, наверное, что-то делаю не так.

    Я добавила в functions.php код

    $count_posts = wp_count_posts();
    if ( $count_posts ) {
    $published_posts = $count_posts->publish;
    }

    А в сайдбар ссылку

    <a href="http://www.example.com">Все посты <?php echo $published_posts; ?></a>

    Но количество постов все равно не отобразилось.

    А как Вы представляете себе «все посты»? Это же ссылка на ленту. Ну или на главную, если у Вас стандартный блог. Эта ссылка итак есть (должна быть) в меню.

    Да, есть. Но как сделать, чтобы рядом с этой ссылкой отображалось количество всех опубликованных постов?

    Но количество постов все равно не отобразилось.

    Выше данный код нужно вставлять не в functions.php, а место, где хотите вывести (sidebap.php нар)

    Выше данный код нужно вставлять не в functions.php, а место, где хотите вывести (sidebap.php нар)

    В sidebap.php вставить не могу, так как эта ссылка на все посты находится в отдельно созданном сайдбаре, который я создала плагином в виджетах.

    Я весь этот код вставила прямо в текстовый виджет в сайдбаре, где находится ссылка. Вот так:

    <?php 
    $count_posts = wp_count_posts();
    if ( $count_posts ) {
    $published_posts = $count_posts->publish;
    }
    ?> 
    
    <a href="http://www.site.ru>Все записи <?php echo $published_posts; ?></a>

    Не работает.

    Вставила ваш код в виджет, отображает в меню буквально:

    все посты (‘.$published_posts.’)’;

    Наверное, текстовый виджет в сайдбаре не понимает php.

    Тогда, наверное, надо переформулировать вопрос — как сделать так, чтобы ссылка МЕНЮ, ведущая на блог, отображала счетчик постов?

    • Ответ изменён 5 лет, 11 месяцев назад пользователем crowd.

    В sidebap.php вставить не могу, так как эта ссылка на все посты находится в отдельно созданном сайдбаре, который я создала плагином в виджетах.

    У Вас тема из оф каталога? давайте ссылку на неё.

    Тема Divi

    http://www.websman.ru/projects/0wp/photos-cappuccino/

    В скриншоте — попытки вставить код в виджет, 2 варианта

    попытки вставить код в виджет

    • Ответ изменён 5 лет, 11 месяцев назад пользователем crowd.

    Тема Divi

    Не вижу такой темы в оф каталоге.

    В скриншоте — попытки вставить код в виджет, 2 варианта

    php-код не выполняется в виджетах. Можно конечно поставить для этого плагин, но это огромная дыра в безопасности.
    Можно ещё изобрести костылей… напр. поставить плагин — конструктор шоркода и плагин позволяющий выводить эти шоркоды в виджетах.. ну или написать функции для этого.
    Можно ещё поискать плагин меню, может какой-то это может, хотя я и сомневаюсь.

    Но в Вашем случае достаточно просто изменить нужный шаблон.
    Ида, сделать предварительно дочернюю тему, чтобы не потерять возможности обновления темы.

    Возможно ещё можно написать функцию. добавляющий в стандартный виджет «рубрики» доп ссылку с подсчётом всех постов, но.. лично мне проще и видится логичней прописать это в шаблоне темы.

    Divi платная тема, условие заказчика. Так что шаблон изменить не получится, я бы с радостью, столько проблем с ним.

    А может, есть возможность добавить счетчик к пункту меню «Блог»? Это обычное меню, а не искусственно созданная ссылка.

    Заказчик требует, чтобы виджет Рубрики (Категории) начинался с ссылки на все посты, тоже со счетчиком. Я этого сделать не смогла, пришлось вот так выкручиваться. Добавить искусственно рубрику «Все посты» тоже не вариант, ведь тогда придется каждый пост ручками в эту рубрику засовывать.

    SeVlad, в любом случае спасибо за ваши ответы. Если не получится, покажу заказчику нашу переписку.

    Divi платная тема,

    Была бы из каталога- можно было бы подсказать и каком файле и в какой строке, а так..

    Так что шаблон изменить не получится,

    Да почему же?! Создаёте дочернюю тему и меняйте. Более того — так и нужно делать всегда.

    • Ответ изменён 5 лет, 11 месяцев назад пользователем SeVlad.

    Я не то имела в виду — нельзя использовать иной шаблон, кроме Диви. Я использую копию, а не дочку — мне пришлось многое дописывать в functions.php, и кроме того, заказчик не хотел, чтобы тема обновлялась. В диви вообще нет template-parts, все по-другому.

    нельзя использовать иной шаблон, кроме Диви.

    Не путайте терминологию. Тема и шаблон.
    https://codex.wordpress.org/%D0%A7%D0%90%D0%92%D0%9E/%D0%A2%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F
    http://codex.wordpress.org/%D0%98%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D1%8F_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2

    Я использую копию..и кроме того, заказчик не хотел, чтобы тема обновлялась.

    Это конечно неправильно, но для Вас легче. Просто вставляете в нужный шаблон. В тот, где выводится сайдбрар и виждеты.

    не понял, а кто мешает самому шорткод написать?
    добавьте в functions.php:

    
    function allposts_func( $atts ){
        $count_posts = wp_count_posts();
        if ( $count_posts ) {
            $published_posts = $count_posts->publish;
        }
        $out = '<a href="http://www.site.ru">Все записи '.$published_posts.'</a>';
        return $out;
    }
    add_shortcode( 'allposts', 'allposts_func' );
    add_filter('widget_text', 'do_shortcode');
    

    а в самом текстовом виджете добавьте [allposts]

    Не путайте терминологию. Тема и шаблон.

    @sevlad, спасибо, буду знать.

    @flector

    не понял, а кто мешает самому шорткод написать?

    Сниженный интеллект и отсутствие знаний.

    @flector, огромное вам спасибо, все получилось!

    Ребят, спасибо за ваше время и терпение, реально очень помогли! С наступающим вас новым годом, успеха и здоровья в новом году!

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