Intereting Posts
Отображение определенных основных файлов Sub Nav на страницах Woocommerce Теги, которые не отображаются на странице «Добавить новую статью» Есть ли способ захватить переменные запроса HTTP и предоставить другой контент? Как добавить пользовательский контент (текст / изображение) при начале содержимого (содержимое IN, то есть одна и та же строка) Переадресация с Tumblr на новый WP WooCommerce – Может ли два продукта с тем же именем, но с другой категорией, создавать уникальные URL-адреса Добавить footer.php в тему WordPress для детей 'posts_per_page' в тип страницы costum Не удается войти в wp-admin после перехода с localhost на сервер Отключить разбиение на страницы только для определенной категории Woocommerce checkout field maxlength, введите только поле ввода номера (почтовый индекс) Как поместить периоды и пространства для значений массива (мета-ключ) Почему WordPress автоматически обрезает все мои изображения? Пользовательский тип сообщения в теме не отображается Ежедневно отправляйте по электронной почте с помощью `wp_mail`

Использовать другой файл single.php на основе условия

Я настраиваю тему своего сайта WordPress, и мне нужно использовать другой файл single.php на основе условия.

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

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

На главной навигационной панели я разместил ссылку "Contest" которая выведет пользователя на страницу конкурса, на этой странице я покажу все представленные записи с кратким описанием и ссылкой, чтобы перейти на страницу истории.

Вот как я показываю данные на странице пользовательских соревнований

 $ppp = get_option('posts_per_page'); $args = array( "tag" => getContestPageData('tag_name'), 'posts_per_page' => 10, 'post_type' => 'post', 'orderby'=> 'date', 'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1) ); $posts=query_posts($args); foreach( $posts as $post ) : setup_postdata($post); ?> <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"> <img src="<?php echo $random_image[0]; ?>" alt="<?php the_title(); ?>" class="left"/> </a> 

мгновенный пользователь нажимает на ссылку привязки, которая перенаправляет пользователя на страницу single.php (если мое понимание верное)

Мне нужна страница главной страницы Tweak, чтобы она могла спроектировать ее с учетом темы конкурса, и я могу сделать это со следующей опцией

  1. Поместите некоторую условную логику в single.php
  2. Для всех пользователей, которые нажимают ссылку на страницу на своей странице, приземляйте их на другой странице, скажем, compition-single.php

Это возможно? пожалуйста, со ссылкой на меня соответствующий ресурс или примеры

Solutions Collecting From Web of "Использовать другой файл single.php на основе условия"

В предыдущем редакторе вы использовали:

 if (in_category('21')) { include (TEMPLATEPATH . '/single-21.php'); } else { include (TEMPLATEPATH . '/single-29.php'); } 

Это часть вашего решения, но прежде чем продолжить, некоторые важные примечания:

  • Не используйте include, например, get_template_part('single-21'); работает лучше
  • Отступ правильно
  • Это связано с тем, как идентификаторы работают в иерархической структуре шаблона. Например, сообщение с идентификатором 21 всегда будет использовать шаблон single-21.php качестве шаблона

Для вашей проблемы конкурса вы хотите:

 if ( post has the tag 'contest' ) { get_template_part(); } 

Чтобы определить, имеет ли место использование тега 'contest':

 $terms = get_the_terms( get_the_ID(), 'tag' ); $is_contest = false; foreach ( $terms as &$term ) { if ( $term->name == 'contest' ) { // Yes, this post has the contest tag $is_contest = true; break; } } 

Я бы рекомендовал вам прочитать об этом:

  • register_post_type
  • register_taxonomy
  • get_template_part

Я также настоятельно рекомендую категоризировать категории и номера тэгов в коде, и вы получите редактор, который автоматически отступывает ваш код, например, Sublime Text, PHPStorm, Netbeans, Komodo Edit и т. Д.

Также как последнее примечание, я настоятельно призываю вас не использовать функцию query_posts. Вместо этого используйте WP_Query.