Как в этот код добавить условие?

Ссылка скопирована
1 ответ

Задача следующая. Есть плагин WP который выводит похожие записи. Мне нужно чтобы похожие записи выводились в отдельных записях только в конкретной рубрике.

Вот код плагина.

<?php yarpp_related(); ?>

Без условия, он отображает записи в нужной мне рубрике (что мне и нужно), но в прочих рубриках отображает текст "Похожих записей нет".(что как раз таки мне НЕ нужно). Если удалить текст, то визуально пусто, но стили и код плагина выводятся, что видно из консоли браузера. Потому я хочу чтобы плагин работал и отображался только под записями рубрики "Портфолио".

Дополнительно:

Как в этот код добавить условие?

Создатель плагина предлагает такое решение ..

// Disable YARPP Automatic Display in specific categories function yarpp_disable_categories() {   // Examples of in_category usage: https://codex.wordpress.org/Function_Reference/in_category   if ( in_category( array( 'my_category_1_slug', 'my_category_2_slug' ) ) ) {     return true;   } }  add_filter( 'noyarpp', 'yarpp_disable_categories' );

// Disable YARPP Automatic Display in specific categories function yarpp_disable_categories() { // Examples of in_category usage: https://codex.wordpress.org/Function_Reference/in_category if ( in_category( array( 'my_category_1_slug', 'my_category_2_slug' ) ) ) { return true; } } add_filter( 'noyarpp', 'yarpp_disable_categories' );

или

[yarpp exclude="1,2,3"] - exclude posts with categories with IDs 1,2 and 3

[yarpp exclude="1,2,3"] - exclude posts with categories with IDs 1,2 and 3

Адаптируйте под себя

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Редакция по БД Ответ

В вашем случае условие нужно ставить не внутри самого YARPP, а вокруг вызова yarpp_related(). Если похожие записи должны выводиться только в рубрике “Портфолио”, проверяйте текущую запись через in_category() и вызывайте плагин только тогда, когда условие выполнено.

if (is_single() &amp;&amp; in_category('portfolio')) {
    yarpp_related();
}

if (is_single() &amp;&amp; in_category('portfolio')) { yarpp_related(); }

Вместо portfolio подставьте slug вашей рубрики. Slug можно посмотреть в админке WordPress: Записи → Рубрики → нужная рубрика → Ярлык. Если удобнее использовать ID рубрики, можно так:

if (is_single() &amp;&amp; in_category(12)) {
    yarpp_related();
}

if (is_single() &amp;&amp; in_category(12)) { yarpp_related(); }

Если вызов находится в шаблоне single.php, этого достаточно. Плагин не будет запускаться в других рубриках, и у вас не появится пустой контейнер с текстом “Похожих записей нет”.

Если же YARPP включён в автоматическом режиме через настройки плагина, одного условия в шаблоне может быть мало. Тогда отключите автоматический вывод в настройках YARPP и выводите похожие записи вручную только там, где нужно. Это более управляемый вариант.

Функция, которую предлагает автор плагина, скорее всего нужна для фильтра отключения автоматического вывода. Но логика там обратная: если функция возвращает true, вывод отключается. Вам нужно отключать всё, что не “Портфолио”:

function yarpp_disable_categories() {
    return ! in_category('portfolio');
}

function yarpp_disable_categories() { return ! in_category('portfolio'); }

После правки проверьте запись из рубрики “Портфолио” и любую запись из другой рубрики. В первой блок должен появиться, во второй не должно быть ни текста, ни пустой обёртки.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно