Intereting Posts
Добавление поля флажка к (пользовательской) таксономии Зачем позволять переопределять важнейшие подключаемые функции wp_verify_nonce и wp_create_nonce? Поиск крюка для добавления вложений информации на вкладку медиабиблиотеки Необходимо извлечь URL из короткого кода WordPress и эхо его get_query_var ('paged'), дающий тот же результат Вызов плагина в разработке темы Страница блога, показывающая тот же контент, что и главная страница Добавить активный класс к вкладкам «Основание» 6 в циклах Получить идентификатор страницы ссылки на пункт меню? Пользовательский пользовательский шаблон для author.php (для пользователя baisi) Получение результатов от wp_oembed_add_provider Нечетный файл сценария пытается загрузить Заказывать персонализированные сообщения по дате обмена Как настроить структуру постоянной ссылки для пользовательского типа сообщения Отображать пользователя мета с помощью другой роли пользователя

Условные обозначения, если существуют теги?

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

<h1>Related Articles</h1> <?php query_posts( 'tag=' . get_the_title() . '' ); while ( have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile;?> <?php wp_reset_query();?> 

Спасибо за любую помощь

Solutions Collecting From Web of "Условные обозначения, если существуют теги?"

Попробуй это

 <?php $related = new WP_Query( 'tag=' . get_the_title() . '' ); if( $related->have_posts() ): <h1>Related Articles</h1> while ( $related->have_posts() ) : the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> </li> <?php endwhile; else: //there are no related articled endif; wp_reset_postdata();?> 

РЕДАКТИРОВАТЬ

Вы не должны использовать query_posts для вторичного цикла. query_posts изменяет «основной цикл» (в этом случае начальный цикл цикла содержит только вашу страницу). Смотрите Кодекс здесь :

query_posts () предназначен для изменения основного цикла. Когда вы используете query_posts (), ваши глобальные переменные и теги шаблонов, связанные с отправкой, будут изменены. Условные теги, вызываемые после вызова query_posts (), также будут изменены – это может быть или не быть ожидаемым результатом.

Чтобы создать вторичные списки (например, список связанных записей в нижней части страницы или список ссылок в боковом виджете), попробуйте создать новый экземпляр WP_Query или использовать get_posts ().

Во-первых, оговорка : я думаю, что использование get_the_title() в качестве фильтра тегов невероятно хрупкое. Если все ваши заголовки сообщений не являются одними словами, я сомневаюсь, что вы когда-нибудь получите какие-либо матчи. Таким образом, вы действительно должны использовать некоторые средства для разделения слов в заголовке сообщения, если вы собираетесь использовать их для запроса сообщений путем сопоставления тега post. Попробуйте get_the_title() результаты get_the_title() или, что еще лучше: сообщение Permalink slug, например, через basename( get_permalink() ) .

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

В-третьих, не используйте для этой цели query_posts() . Функция query_posts() предназначена только для изменения основного запроса цикла . Если вам нужен вторичный цикл (и список связанных сообщений, безусловно, является вторичным циклом), тогда вам нужно использовать get_posts() или WP_Query() .

Вот один из способов создания вторичного запроса / цикла:

 <?php // Get the post slug $related_post_slug = basename( get_permalink() ); // Explode the slug terms // Since the post slug is constructed as // "term-term-term-term", we simply // Use the hyphen to explode the terms $related_post_slug_terms = explode( '-', $related_post_slug ); // Implode the slug terms, using commas, for an OR query // If you want an AND query, implode using "+" $related_post_tags = implode( ',', $related_post_slug_terms ); // Query related posts $related_posts = new WP_Query( array( 'tag' => $related_post_tags ) ); // Now loop through the related posts query if( $related_posts->have_posts() ): while ( $related_posts->have_posts() ) : $related_posts->the_post(); ?> <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li> <?php endwhile; else: ?> there are no related articled <?php endif; // Reset post data, for good measure wp_reset_postdata(); ?>