मेरे पास एक कस्टम पोस्ट प्रकार के लिए एक लूप है। मैं प्रत्येक पोस्ट के लिए शीर्षक, छवि और सामग्री का एक खंड वापस ला रहा हूं। मैं एक स्लीक हिंडोला बनाने के लिए परिणामों में स्लीक स्लाइडर लागू करना चाहता हूं, लेकिन मैं लूप के पहले दो परिणामों को शामिल नहीं करना चाहता - इसलिए मुझे परिणामों के लिए एक पैरेंट डिव बनाना होगा, लेकिन उसके बाद केवल उस डिव को शुरू करना होगा पहले दो परिणाम।

मैंने केवल पहले दो परिणामों के लिए कक्षा को लागू करने के लिए लूप गिनती पर परिणामों से पूछताछ करने के तरीकों का परीक्षण किया है, लेकिन यह वास्तव में वह हासिल नहीं करता है जो मैं कर रहा हूं।

<div class="wrapper_for_news_items">
  <?php 

$posts = get_posts(array(
    'posts_per_page'    => -1,
    'post_type'         => 'news',
    'order' => 'DESC'
));

if( $posts ): ?>
    <?php $post = $posts[0]; $c=0; ?>



    <?php foreach( $posts as $post ): 

        setup_postdata( $post );

        ?>

    <div class="treatment_block news_block <?php $c++; if($c == 1) { echo ' featured'; } elseif($c == 2) { echo ' featured'; } ?>">
    <h2  class="block_title above"> <?php the_title( '' ); ?></h2>
     <h3 class="post_date top">
      <?php echo get_the_date() ?>
    </h3>
      <div class="post_icon" style="background-image: url('<?php 
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
    the_post_thumbnail_url($post_id, 'thumbnail');
} 
?>');">
      <button class="post__link but" rel="<?php the_ID(); ?>">READ MORE</button>
      </div>
            <h2  class="block_title below"> <?php the_title( '' ); ?></h2>
    <h3 class="post_date bottom">
      <?php echo get_the_date() ?>
    </h3>
            <p class="excerpt">
            <?php the_excerpt( '' ); ?>
            </p>

      </div>



    <?php endforeach; ?>


    <?php wp_reset_postdata(); ?>

                           <?php else : ?>

                        No News Found!


<?php endif; ?>


<!-- end of news loop -->
            </div> <!-- treatment news block wrapper -->
0
Tfom 19 मई 2019, 23:13

1 उत्तर

सबसे बढ़िया उत्तर

आप सिर्फ 2 लूप बना सकते हैं। चुनिंदा आउटपुट के लिए पहला और हिंडोला के लिए दूसरा उपयोग करें।

<div class="wrapper_for_news_items">
  <?php 
$args_with_two_posts = array(
    'posts_per_page'    => 2,
    'post_type'         => 'news',
    'order'             => 'DESC'
);
$query_with_two_posts = new WP_Query( $args_with_two_posts );

if( $query_with_two_posts->have_posts ) : 
  while ( $query_with_two_posts->have_posts ) : $query_with_two_posts->the_posts; ?>


  <div class="treatment_block news_block featured">
    <h2 class="block_title above">
      <?php the_title( '' ); ?>
    </h2>
    <h3 class="post_date top">
      <?php echo get_the_date() ?>
    </h3>
    <div class="post_icon" style="background-image: url('<?php 
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
    the_post_thumbnail_url($post_id, 'thumbnail');
} 
?>');">
      <button class="post__link but" rel="<?php the_ID(); ?>">READ MORE</button>
    </div>
    <h2 class="block_title below">
      <?php the_title( '' ); ?>
    </h2>
    <h3 class="post_date bottom">
      <?php echo get_the_date() ?>
    </h3>
    <p class="excerpt">
      <?php the_excerpt( '' ); ?>
    </p>

  </div>



  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>

  <?php else : ?> No News Found!
  <?php endif; ?>
  <!-- end of 2 post initial news loop -->
</div>
<!-- treatment news block wrapper -->


<?php

  // Start your second loop containing the slickslider content
  
?>



<div class="wrapper_for_news_carousel_items">
  <?php 
$args_with_all_posts = array(
    'posts_per_page'    => -1,
    'offset'            => 2 // Offset the 2 initial posts
    'post_type'         => 'news',
    'order'             => 'DESC'
);
$query_with_two_posts = new WP_Query( $args_with_all_posts );

if( $args_with_all_posts->have_posts ) : 
  while ( $args_with_all_posts->have_posts ) : $args_with_all_posts->the_posts; ?>


  <div class="treatment_block news_block">
    <h2 class="block_title above">
      <?php the_title( '' ); ?>
    </h2>
    <h3 class="post_date top">
      <?php echo get_the_date() ?>
    </h3>
    <div class="post_icon" style="background-image: url('<?php 
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
    the_post_thumbnail_url($post_id, 'thumbnail');
} 
?>');">
      <button class="post__link but" rel="<?php the_ID(); ?>">READ MORE</button>
    </div>
    <h2 class="block_title below">
      <?php the_title( '' ); ?>
    </h2>
    <h3 class="post_date bottom">
      <?php echo get_the_date() ?>
    </h3>
    <p class="excerpt">
      <?php the_excerpt( '' ); ?>
    </p>

  </div>



  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>

  <?php else : ?> No News Found!
  <?php endif; ?>
  <!-- end of news loop -->
</div>
<!-- treatment news carousel items -->

या आप लूप में पदों की गणना कर सकते हैं और कैरोसेल बनाने के लिए तीसरी पोस्ट से पहले और आखिरी पोस्ट के बाद एक रैपर असाइन कर सकते हैं।

<div class="wrapper_for_news_items">
  <?php 
$args_with_two_posts = array(
    'posts_per_page'    => 2,
    'post_type'         => 'news',
    'order'             => 'DESC'
);
$query = new WP_Query( $args_with_two_posts );

$counter = 1; // Set the counter

if( $query->have_posts ) : 
  while ( $query->have_posts ) : $query->the_posts; 
  
  if ( $count == 3 ) { echo '<div class="slick-slider">'; };
  ?>


  <div class="treatment_block news_block">
    <h2 class="block_title above">
      <?php the_title( '' ); ?>
    </h2>
    <h3 class="post_date top">
      <?php echo get_the_date() ?>
    </h3>
    <div class="post_icon" style="background-image: url('<?php 
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
    the_post_thumbnail_url($post_id, 'thumbnail');
} 
?>');">
      <button class="post__link but" rel="<?php the_ID(); ?>">READ MORE</button>
    </div>
    <h2 class="block_title below">
      <?php the_title( '' ); ?>
    </h2>
    <h3 class="post_date bottom">
      <?php echo get_the_date() ?>
    </h3>
    <p class="excerpt">
      <?php the_excerpt( '' ); ?>
    </p>

  </div>



  <?php 
        $counter++; // Add +1 every loop
        
        if (($query->current_post +1) == ($query->post_count)) {  
          echo '</div>'; // This is the last post 
        }
        endwhile; 
  ?>
  <?php wp_reset_postdata(); ?>

  <?php else : ?> No News Found!
  <?php endif; ?>
  <!-- end of news loop -->
</div>
<!-- treatment news block wrapper -->
1
Aaron 19 मई 2019, 22:22