Добавить счетчик постов к ссылке
-
Дано — одиночная ссылка в сайдбаре на все посты, называется «Все посты».
Нужно чтобы рядом с этой ссылкой отображалось количество всех опубликованных статей.
Виджет Рубрики (Категории) не имеет ссылки на все статьи, к сожалению.-
Тема изменена 8 лет, 4 месяца назад пользователем
crowd.
-
Тема изменена 8 лет, 4 месяца назад пользователем
-
Нужно чтобы рядом с этой ссылкой отображалось количество всех опубликованных статей.
$published_posts = $count_posts->publish; echo '<a href=".."> все посты ('.$published_posts.' шт)</a>';
Виджет Рубрики (Категории) не имеет ссылки на все статьи, к сожалению.
А как Вы представляете себе «все посты»? Это же ссылка на ленту. Ну или на главную, если у Вас стандартный блог. Эта ссылка итак есть (должна быть) в меню.
-
Ответ изменён 8 лет, 4 месяца назад пользователем
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.
Тогда, наверное, надо переформулировать вопрос — как сделать так, чтобы ссылка МЕНЮ, ведущая на блог, отображала счетчик постов?
-
Ответ изменён 8 лет, 4 месяца назад пользователем
crowd.
В sidebap.php вставить не могу, так как эта ссылка на все посты находится в отдельно созданном сайдбаре, который я создала плагином в виджетах.
У Вас тема из оф каталога? давайте ссылку на неё.
Тема Divi
http://www.websman.ru/projects/0wp/photos-cappuccino/
В скриншоте — попытки вставить код в виджет, 2 варианта
-
Ответ изменён 8 лет, 4 месяца назад пользователем
crowd.
Тема Divi
Не вижу такой темы в оф каталоге.
В скриншоте — попытки вставить код в виджет, 2 варианта
php-код не выполняется в виджетах. Можно конечно поставить для этого плагин, но это огромная дыра в безопасности.
Можно ещё изобрести костылей… напр. поставить плагин — конструктор шоркода и плагин позволяющий выводить эти шоркоды в виджетах.. ну или написать функции для этого.
Можно ещё поискать плагин меню, может какой-то это может, хотя я и сомневаюсь.Но в Вашем случае достаточно просто изменить нужный шаблон.
Ида, сделать предварительно дочернюю тему, чтобы не потерять возможности обновления темы.Возможно ещё можно написать функцию. добавляющий в стандартный виджет «рубрики» доп ссылку с подсчётом всех постов, но.. лично мне проще и видится логичней прописать это в шаблоне темы.
Divi платная тема, условие заказчика. Так что шаблон изменить не получится, я бы с радостью, столько проблем с ним.
А может, есть возможность добавить счетчик к пункту меню «Блог»? Это обычное меню, а не искусственно созданная ссылка.
Заказчик требует, чтобы виджет Рубрики (Категории) начинался с ссылки на все посты, тоже со счетчиком. Я этого сделать не смогла, пришлось вот так выкручиваться. Добавить искусственно рубрику «Все посты» тоже не вариант, ведь тогда придется каждый пост ручками в эту рубрику засовывать.
SeVlad, в любом случае спасибо за ваши ответы. Если не получится, покажу заказчику нашу переписку.
Divi платная тема,
Была бы из каталога- можно было бы подсказать и каком файле и в какой строке, а так..
Так что шаблон изменить не получится,
Да почему же?! Создаёте дочернюю тему и меняйте. Более того — так и нужно делать всегда.
-
Ответ изменён 8 лет, 4 месяца назад пользователем
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, огромное вам спасибо, все получилось!
Ребят, спасибо за ваше время и терпение, реально очень помогли! С наступающим вас новым годом, успеха и здоровья в новом году!
-
Ответ изменён 8 лет, 4 месяца назад пользователем
- Тема «Добавить счетчик постов к ссылке» закрыта для новых ответов.