Intereting Posts
Создание уникального связанного списка тегов из определенной категории? Отображать только HTML, если пользовательское поле имеет значение Ошибка get_posts с пользовательской таксономией и отношением OR Проверка состояния входа в систему до инициализации wp_get_current_user Удалите все классы навигационного меню, кроме тех, которые начинаются с определенных букв Два шаблона архива и выделенная категория Принудительно модифицировать роль вкладчика для редактирования? Как реализовать выборочное обновление с настройкой настройки? Как объединить мои короткие коды? Подкатегория CSS, которую читает панель администратора Gravity Forms Post Fields: Возможно ли иметь несколько ответов на визуализатор формы в той же почте? Один пост с различным контентом, в зависимости от страницы Какие фильтры применяются к функции_content? Как я могу ограничить и перенаправить пользователей при условии? WordPress переопределяет переменные GET, (page_id), установленные в HTACCESS

Использовать другой файл 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.