পৃষ্ঠাগুলি কাস্টম লুপের সাথে কাজ করছে না


42

আমি একটি কাস্টম লুপ পেয়েছি যা আমি কিছু রিয়েল এস্টেটের তালিকা প্রদর্শন করতে ব্যবহার করছি যা 60 দিনের মধ্যে পাওয়া যাবে। আমি এটি নিম্নলিখিত ফাংশন দিয়ে কল করছি:

<?php 
$sixtydays = date('Y/m/d', strtotime('+60 days'));
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query = new PostsOrderedByMetaQuery(array(
  'post_type' => array('post', 'real-estate'),
  'meta_key' => 'Time Available',
  'meta_compare' => '<=',
  'meta_value' => $sixtydays,
  'paged' => $paged,
  'orderby_meta_key' => 'Price',
  'orderby_order'    => 'ASC'
));
?>
<?php while ($query->have_posts()) : $query->the_post(); ?>

যখন লুপটি দুর্দান্ত কাজ করে, আমি এটি পৃষ্ঠাতে পারাতে পারি না। এটি প্রথম 10 (আমার ডিফল্ট) পোস্ট দেখায় তবে পৃষ্ঠাগুলি দেখায় না। সমস্ত পোস্ট প্রদর্শন করার একমাত্র উপায় হ'ল 'posts_per_page' => -1,আমার অন্য পৃষ্ঠাগুলিতে একই ধরণের লুপ রয়েছে যা পৃষ্ঠাতে সমস্যা হয় না adding এটির সাথে একমাত্র পার্থক্য হ'ল দুটি মেটা কী রয়েছে যা পোস্টগুলি ফিল্টার করছে।

আমি এর জন্য এবং আমার বাকী পৃষ্ঠাগুলির জন্য ডাব্লুপি পৃষ্ঠা নাভি ব্যবহার করছি। আমি লুপটি বন্ধ করছি এবং নিম্নলিখিত কোডটি ব্যবহার করে পৃষ্ঠাগুলি যুক্ত করছি:

<?php endwhile; // End the loop. Whew. ?>
<?php wp_pagenavi(); ?>
<?php wp_reset_query(); ?>

আমি এটি ঠিক করতে কীভাবে যেতে পারি?


উত্তর দেওয়ার পরে আমি আপনার প্রশ্নটি আবার পড়ছি ... আপনি কি বোঝাতে চেয়েছিলেন যে আপনার পেজনাভি প্লাগইনটি প্রদর্শিত হচ্ছে না বা পৃষ্ঠাগুলি আপনাকে 404 এ নিয়েছে?
আইলিনকোড

ডাব্লুপি পৃষ্ঠা নাভি পোস্টগুলিতে অনুরূপ অনুসন্ধানগুলি প্রদর্শন করছে না (একাধিক মেটা কী দ্বারা ফিল্টার করা হয়েছে)। এটি অন্য সমস্ত পৃষ্ঠায় যেমন আর্কাইভ, ব্লগ ইত্যাদিতে প্রদর্শিত হচ্ছে
নুরাইন

উত্তর:


39

আমি পেজনাভি নিয়ে আগে এই সমস্যাটি নিয়ে চলেছি। আমার সমাধানটি হ'ল $ wp_query ভেরিয়েবল অস্থায়ীভাবে হাইজ্যাক করা এবং তারপরে লুপটি বন্ধ করার পরে পুনরায় সাইন করা। একটি বহিঃপ্রকাশ:

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
   'post_type'=>'post',
   'cat' => 6,
   'posts_per_page' => 5,
   'paged'=>$paged
);
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query($args);

/* PageNavi at Top */
if (function_exists('wp_pagenavi')){wp_pagenavi();}
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();   

/* DO STUFF IN THE LOOP */

endwhile; endif;
/* PageNavi at Bottom */
if (function_exists('wp_pagenavi')){wp_pagenavi();}
$wp_query = null;
$wp_query = $temp;
wp_reset_query(); ?>

শেষ পদক্ষেপটি হ'ল was wp_quary ভেরিয়েবলটি মূলত যা ছিল তা পুনরায় সাইন করা এবং তারপরে আবার কোয়েরিটি পুনরায় সেট করতে শুরু করুন।

* সম্পাদনা করুন: * ফিক্সড পিএইচপি ট্যাগ। ভাল আই স্নিপার।


আমি জানি না পেজনাভি কখন তাদের প্লাগইনে এই পরিবর্তন করেছিলেন, তবে ওয়ার্ডপ্রেস 3.0.০ এর পর থেকে কাস্টম লুপগুলিতে প্রদর্শন করার জন্য পৃষ্ঠাগুলি পেতে আমাকে $ wp_query ভেরিয়েবল হাইজ্যাক করতে হয়েছিল। আমি সাহায্য করতে পেরে আনন্দিত! : ডি
পিএনএমজি

8
wp_pagenavi() এখন queryযুক্তিও গ্রহণ করে , সুতরাং ওভাররাইটের পরিবর্তে $wp_queryআপনি লিখতে পারেন wp_pagename( array( 'query' => $my_query ) )
জান ফ্যাব্রি

এই সমাধানটি আমার পক্ষে কাজ করেছিল। এটির আগে আমার আরও একটি লুপ ছিল, সুতরাং উদাহরণের কোডটির আগে আমাকে একটি wp_reset_query () যুক্ত করতে হয়েছিল।
রায়ান

কাস্টম ক্যোয়ারীগুলি ব্যবহার করে সংখ্যাগত পৃষ্ঠার জন্য আরও একটি সম্ভাব্য সমাধানের জন্য এই উত্তরটি দেখুন WP_Query();
মাইকেল একলন্ড

11

আজকের আগে আমারও একই সমস্যা ছিল ...

আপনার কি কাস্টম পোস্ট টাইপ এবং একই স্লাগ সহ একটি পৃষ্ঠা বা পোস্ট রয়েছে? অর্থ আপনার / রিয়েল এস্টেটের কোনও পৃষ্ঠার ইউআরএল এবং / রিয়েল-এস্টেটে কাস্টম পোস্ট ধরণের ইউআরএল পুনর্লিখন?

যদি এমনটি হয় তবে একই url সহ আপনার 2 টি থাকতে পারে না অন্যথায় ওয়ার্ডপ্রেস গুলিয়ে যায়।

আপনি url পরিবর্তন করতে পারেন বা এই http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753 এ চেষ্টা করতে পারেন । আমি আমার ইউআরএল পরিবর্তন করতে বেছে নিয়েছি, তবে সেখানে উপস্থিত কেউ সমস্যাটি পেতে একটি কাস্টম কোয়েরি লিখেছেন


আমি মনে করি না আমার কিছু একই নাম আছে। আমি আসলে "কুইক মুভ ইন - 60 দিন" নামে একটি নতুন পৃষ্ঠা তৈরি করেছি এবং এর জন্য একটি পৃষ্ঠা টেম্পলেট তৈরি করে লুপটি যুক্ত করেছি।
নুরাইন

7

আমি কাস্টম পৃষ্ঠার জন্য এটি ব্যবহার করছি এবং এটির কাজ ঠিক আছে

//paginations for newsletter

     //define in function file
      function custom_pagination($numpages = '', $pagerange = '', $paged='')  {

      if (empty($pagerange)) {
        $pagerange = 2;
      }

      /**
       * This first part of our function is a fallback
       * for custom pagination inside a regular loop that
       * uses the global $paged and global $wp_query variables.
       * 
       * It's good because we can now override default pagination
       * in our theme, and use this function in default queries
       * and custom queries.
       */

      if ($paged == '') {
          global $paged;
          if (empty($paged)) {
            $paged = 1;
          }
      }
      if ($numpages == '') {
        global $wp_query;
        $numpages = $wp_query->max_num_pages;
        if(!$numpages) {
            $numpages = 1;
        }
      }

      /** 
       * We construct the pagination arguments to enter into our paginate_links
       * function. 
       */

      $pagination_args = array(
        'base'            => get_pagenum_link(1) . '%_%',
        'format'          => 'page/%#%',
        'total'           => $numpages,
        'current'         => $paged,
        'show_all'        => false,
        'end_size'        => 1,
        'mid_size'        => $pagerange,
        'prev_next'       => true,
        'prev_text'       => __('&#9668;'),
        'next_text'       => __('&#9658;'),
        'type'            => 'plain',
        'add_args'        => true,
        'add_fragment'    => '',
        'after_page_number' => '',
        'before_page_number' =>'',
        );
     $paginate_links = paginate_links($pagination_args);

      if ( $paginate_links ) {
        echo "<nav class='custom-pagination'>";
          //echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> ";
          echo $paginate_links;
        echo "</nav>";
      }
    }
    ?>

// টেমপ্লেট-নিউজলেটারের মতো কোনও টেমপ্লেটের জন্য এটি সংজ্ঞায়িত করুন

    <?php  $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
                               $newslatter_detail = array(
                               'post_type' => 'newsletter',
                               'post_status' => 'publish',
                               'posts_per_page' =>4,
                               'order' => 'ASC',
                               //'orderby' =>'date',
                               'paged' => $paged
                               );
                               $posts = new WP_Query( $newslatter_detail );
                               $posts_array = get_posts( $newslatter_detail );
                              if ( $posts -> have_posts() ) {
                               while ( $posts->have_posts() ) : $posts->the_post();
                               the_title();
                               endwhile;
                        wp_reset_postdata();
              } else { ?>
                 No Forum List found.
                <?php } ?>

              <div class="pagination">
                    <?php
                       if (function_exists(custom_pagination)) {
                        custom_pagination($posts->max_num_pages,"",$paged);
                       }
                       ?>
                 </div>

হাই কাস্টম_প্যাজিনেশন () ফাংশন থিম ফাংশন ফাইল বা প্লাগইন ফাংশন ফাইলের মধ্যে সংজ্ঞা দেয়। এবং আপনি আপনার টেমপ্লেট ফাইলে এই কোডটি রাখার পরে উপরের কোডে মন্তব্য অংশের পরে এটি সংজ্ঞায়িত করুন = কোনও টেম্পলেট যেমন টেম্পলেট-নিউজলেটারের মতো টেম্পলেট-নিউজলেটারের মতো কোনও টেমপ্লেটের জন্য এটি সংজ্ঞায়িত করুন যদি কোনও প্রশ্ন থাকে তবে আমাকে এখানে জানাতে দিন।
আদনান লিমডিওয়ালা

এই উত্তর সম্পর্কিত যে কোনও সমস্যা আমি আপনার পক্ষে এটির কাজটি আশা করি
আদনান লিমডিওয়ালা

3

নুরাইন দ্বারা মূল কোডটির কিছু অংশ এবং জান ফ্যাব্রির উত্তরটি ব্যবহার করে এটি আমার জন্য কাজ করেছে solution

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$myquery = new WP_Query(
    array(
        'posts_per_page' => '2',
        'paged'=>$paged
        // add any other parameters to your wp_query array
    )   
);  
?>

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

<!-- Start your post. Below an example: -->

<div class="article-box">                               
<h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p>                        
</div>

<!-- End of your post -->

<?php endwhile; ?>
<?php wp_pagenavi( array( 'query' => $myquery ) ); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here -->
<?php wp_reset_query(); ?>
<?php else : ?>
<p>No posts found</p>
<?php endif; ?>

2

আপনি এই পদ্ধতিটি ব্যবহার করে আপনার কাস্টম পোস্ট প্রকারটি প্রদর্শন করতে পারেন আপনার পৃষ্ঠায়ণ কাজ করতে পারে !!!

<?php
  query_posts( array( 'post_type' => 'post', 'posts_per_page' => '2', 'paged' =>     get_query_var( 'paged' ) ) ); 

  if (have_posts() ) :  while (have_posts() ) : the_post(); 
?>
<!-- Start your post. Below an example: -->
<div class="article-box">                               
<h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p>                        
</div>
<!-- End of your post -->
<?php endwhile; ?>
<?php wp_pagenavi(); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here -->
<?php wp_reset_query(); ?>
<?php else : ?>
<p>No posts found</p>
<?php endif; ?>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.