我有一个自定义循环,用于显示一些将在 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,
我在其他分页没有问题的页面上有类似的循环。 与这个唯一的区别是有 二 过滤帖子的元键。
我正在为这个页面和我的其余页面使用 WP Page Navi。 我正在关闭循环并使用以下代码添加分页:
<?php endwhile; // End the loop. Whew. ?> <?php wp_pagenavi(); ?> <?php wp_reset_query(); ?>
我该如何解决这个问题?
我以前用 PageNavi 遇到过这个问题。 我的解决方案是临时劫持 $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(); ?>
最后一步是将 $wp_query 变量重新分配给原来的变量,然后将查询重置为开始。
*编辑:*固定的PHP标签。 好眼力狙击手。
我今天早些时候遇到了类似的问题……
您是否有自定义帖子类型和页面或带有相同 slug 的帖子? 意思是您拥有 /real-estate 的页面的 url 和自定义帖子类型 url 在 /real-estate 重写?
如果是这种情况,你不能有 2 个具有相同的 url,否则 wordpress 会感到困惑。
您可以更改 url 或尝试此 http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753。 我选择更改我的网址,但那里有人写了一个自定义查询来解决这个问题
原文链接:https://www.wordpresshy.com/312611
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END