首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP查询分页不适用于一个模板

WP查询分页不适用于一个模板
EN

Stack Overflow用户
提问于 2014-06-19 18:59:09
回答 3查看 416关注 0票数 0

我在WordPress分页方面遇到了更多的麻烦。它在除自定义分类归档页面之外的每个页面上工作,由于网站的复杂性,归档页面中仍然有一个自定义循环。

但是,我觉得它应该仍然可以工作,因为它本质上是与我在所有其他页面上运行的相同的查询,只是有一些小的不同。

此时,它会获得正确的页码URL,它只显示404页。

下面是我的代码:

分页函数

代码语言:javascript
复制
function pagination($pages = '', $range = 2)
{  
     $showitems = ($range * 2)+1;  

     global $paged;
     if(empty($paged)) $paged = 1;

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

     if(1 != $pages)
     {
         echo "<div class='pagination'>";
         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>";
         if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a>";

         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+5 || $i <= $paged-$range-5) || $pages <= $showitems ))
             {
                 echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
             }
         }

         if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
         echo "</div>\n";
     }
}

WP查询

代码语言:javascript
复制
if ( get_query_var('paged') ) { 
    $paged = get_query_var('paged'); 
} else if ( get_query_var('page') ) {
    $paged = get_query_var('page'); 
} else {
    $paged = 1; 
}


$args = array(  
    // general
    'post__in' => $postIDs,
    'post_type' => 'event',
    'posts_per_page' => 25,
    'paged' => $paged,

    'orderby' => 'post__in',
    'order' => 'ASC'

);


$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query( $args );

在带有自定义查询的页面上的endwhile之后进行分页调用

<?php pagination($pages = $wp_query->max_num_pages); ?>

当它在其他页面上工作时,你知道为什么它可能不工作吗?

EN

回答 3

Stack Overflow用户

发布于 2014-06-25 01:59:24

我看到分页的代码是ok的,如果你看到404页面导致在你的站点上安装的1个插件中有变量冲突,我确信你做了1个自定义在1个其他插件中添加新的请求变量,但使用了错误的方法,所以它造成了冲突。我建议你每次禁用每个插件,然后在前端测试它,这样如果分页工作,你就会知道哪个插件产生了冲突错误。谢谢!

票数 0
EN

Stack Overflow用户

发布于 2014-06-26 19:27:59

我也有同样的问题。然后我意识到设置页面上的默认每页帖子选项应该比query_posts函数中的任何自定义posts_per_page都要少。就这样。很奇怪,但这就是事实。

票数 0
EN

Stack Overflow用户

发布于 2014-06-28 07:05:39

您提到您正在查询一个自定义分类法,但是您的查询似乎没有查询一个自定义分类法。也许可以尝试向查询args添加类似'cars' => get_queried_object()->name的内容-其中cars是您的自定义分类法的名称。

例如:

代码语言:javascript
复制
$args = array(
    'post__in'       => $postIDs,
    'post_type'      => 'event',
    'posts_per_page' => 25,
    'paged'          => $paged,
    'orderby'        => 'post__in',
    'order'          => 'ASC',
    'cars'           => get_queried_object()->name
);
$query = new WP_Query( $args );

注意:未经测试,但我99%确定get_queried_object()->name;获得了当前的分类术语名称。

参考:http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24304935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档