2013-11-14 2 views
1

Я создаю целевую страницу (одну страницу со многими разделами) в WordPress, и я вызываю каждый раздел, используя get_template_part(). Поэтому у меня есть что-то вроде этого;Wordpress, отображающий сообщения на разных страницах

<?php get_template_part('content', 'reasons-to-purchase'); ?> 
    <?php get_template_part('content', 'testimonials'); ?> 
    <?php get_template_part('content', 'reasons-to-purchase'); ?> 

Каждый файл контента, то есть цикл, чтобы возвратить сообщения, которые соответствуют своей категории, с множеством posts_per_page к одному, как показано ниже (контент-причины к purchase.php);

  <?php 

     $args = array(
      'post_type' => 'section',  
      'category_name' => 'Reasons-To-Purchase', 
      'posts_per_page' => 1, 
      'orderby' => 'date', 
      'order' => 'DESC' 
     ); 

     $the_query = new WP_Query ($args); 

if (get_category_by_slug('Reasons-To-Purchase')->category_count > 0) {?> 


<!-- Featured content image or slider. --> 
     <div class="container panel"> 

      <?php if (have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 

      <?php the_content(); ?> 


     </div> 

<?php } ?> 

      <?php wp_reset_query(); ?> <div class="clearfix"></div>  

То, что я хотел бы это создать столько, сколько этих разделов, в которых когда-либо заказ мне нравится и цикл внутри каждой секции тянет на следующий пост, назначенный этой категории. Так, например, в первом разделе «причины для покупки» первый пост вытягивается, а затем во второй «причине для покупки» вызывается второй пост. В настоящий момент я сбрасываю цикл в каждом файле с помощью 'wp_reset_query()', поэтому он не мешает следующему разделу, который может быть другим. В основном цикл должен продолжаться для следующего аналогичного раздела без дублирования любых сообщений.

Любые идеи о том, как это сделать или советом, будут наиболее ценными.

+0

Ваш вопрос, кажется, не ясно, пожалуйста, измени его и б Кроме того, он включает соответствующий код –

+0

Сделал сейчас, надеюсь, что вся необходимая информация есть. – Naz

ответ

1

Вам необходимо пройти параметр страницы перед вызовом get_template_part() но get_template_part() не поддерживает повторное использование ваших переменных, вам нужно использовать locate_template() и include()

$page=1; 
include(locate_template('content-reasons-to-purchase.php')); 
include(locate_template('content-testimonials.php')); 
$page=2; 
include(locate_template('content-reasons-to-purchase.php')); 
$page=3; 
include(locate_template('content-reasons-to-purchase.php'));/* and so on page 4,5,6... */ 

В вас шаблон сделать небольшое изменение кода

if(empty($page)){ 
$page=1; 
} 

$args = array(
      'post_type' => 'section',  
      'category_name' => 'Reasons-To-Purchase', 
      'posts_per_page' => 1, 
      'orderby' => 'date', 
      'paged'=>$page, /* <======= get page no from your file i.e locate_template(...) and use here*/ 
      'order' => 'DESC' 
     ); 

Надеется, что это имеет смысл

Смежные вопросы