2016-03-16 4 views
1

Я пытаюсь создать только пользовательские типы сообщений, используя цикл WP, но только показывает те, которые я даю по ID.Loop CPT by ID trough Wordpress loop

Это мой "нормальный" цикл прямо сейчас:

<?php $args = array(

    'post_type' => 'referenties', 'posts_per_page' => 5, 'order' => 'DESC', 

); ?> 


<?php 
    $number = 0; 
    query_posts($args); 
    if(have_posts()): 
    ?> 




<!-- /Carousel script --> 
<div class="container"> 
    <div class="carousel-loop"> 
     <div id="myCarousel" class="carousel slide"> 
    <ol class="carousel-indicators"> 
    <?php while(have_posts()): the_post(); ?> 
    <li data-target="#myCarousel" data-slide-to="<?php echo $number++; ?>"></li> 
    <?php endwhile; ?> 
    </ol> 
    <div class="controle-buttons"> 
     <a class="carousel-control left" href="#myCarousel" data-slide="prev"><i class="fa fa-chevron-circle-left"></i></a> 
     <a class="carousel-control right" href="#myCarousel" data-slide="next"><i class="fa fa-chevron-circle-right"></i></a> 
    </div> 
    <!-- Carousel items --> 
    <div class="carousel-inner"> 
    <?php while(have_posts()): the_post(); ?> 
      <!-- Carousel nav --> 

    <div class="item"> 
     <div class="col-sm-2"> 
     <?php if (has_post_thumbnail()) : // Check if thumbnail exists ?> 
      <?php the_post_thumbnail(array(150,150)); // Declare pixel size you need inside the array ?> 
     </div> 
     <div class="col-sm-4"> 
        <h4><?php the_title(); ?></h4> 
         <?php $bedrijf = get_field('naam_bedrijf'); ?> 
         <?php $feest = get_field('feest'); ?> 
         <?php $link = get_field('mylink'); ?> 
         <?php echo '<p>Bedrijfsnaam: ' . $bedrijf . '</p>'; ?> 
         <?php $post_object = get_field('mylink'); 
          if($post_object): $post = $post_object; setup_postdata($post); ?> 
           <p>Feest type: <a style="color:#ff6600" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> 
          <?php endif; ?> 
     </div><?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?> 
     <div class="col-sm-4 col-sm-offset-1"> 
     <h4>Opmerking</h4> 
      <p><?php echo custom_field_excerpt_longer(); ?></p> 
       <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?> 
       <?php echo '<p>' . wp_review_show_total() . '</p>'; ?> 
     </div> 
     <?php endif; ?> 
    </div> 
    <?php endwhile; ?> 

Но я только хочу, чтобы показать сообщение идентификаторы: 2706, 2462, 2514, 2511 и 2505.

Петля показана в карусель, это прекрасно работает. Но я просто хочу, чтобы ID показывался, а не все сообщения добавлены.

Спасибо!

+0

[Не используйте 'query_posts' для пользовательских запросов] (http://wordpress.stackexchange.com/questions/1753/when-should-you-use-wp- query-vs-query-posts-vs-get-posts) Используйте либо [WP_Query()] (https://codex.wordpress.org/Class_Reference/WP_Query), либо [get_posts()] (https: // codex. wordpress.org/Template_Tags/get_posts) для получения сообщений. –

+0

Если бы вы могли сказать мне, как правильно сделать цикл, или указать мне правильно, я бы хотел сделать. Я буду рад использовать WP_Query() ... – Steggie

+0

Я добавил ответ. Я бы рекомендовал прочитать код «WP_Query». Он имеет много разных типов запросов и объясняет все довольно хорошо :) –

ответ

2

использовать что-то вроде этого:

<?php 

    $args = array(
     'post_type' => 'referenties', 
     'post__in' => array(2706, 2462, 2514, 2511, 2505), 
     'order'  => 'DESC', 
    ); 

    $the_query = new WP_Query($args); 

    // The Loop 
    if ($the_query->have_posts()) { 
     while ($the_query->have_posts()) { 
      $the_query->the_post(); 

      //post content output goes here 

     } 
     // Restore original Post Data 
     wp_reset_postdata(); 
    } else { 
     // no posts found 
    } 

post__in() аргумента использует массив с желаемыми почтовыми идентификаторами для извлечения.

Не используйте query_posts для пользовательских запросов. Слишком много, что может пойти не так.

Надеется, что это помогает :)

+0

Привет, dingo_d, спасибо за ваш код. Просто чтобы быть уверенным. Неплохо должно размещать мои колы и прочее, где вы помещаете // вывод контента для публикации здесь ... Сразу, просто начните добавлять мой код. Потому что, когда я делаю это, страница больше не работает ... – Steggie

+0

Вы не хотите сбросить postdata, если у вас нет сообщений, потому что вы не изменили глобальную «$ post». Я сделал необходимые изменения в вашем посте ;-) –

+0

О, правильно, я вставил с страницы 'WP_Query', спасибо Pieter :) @Steggie поместите петлю внутри ваших оберток, а часть, которую вы хотите повторить, вы поместите внутри условия if, так что до тех пор, пока условие из запроса истинно, вы получите сообщения. Довольно стандартный цикл wp, должен работать нормально. –