分页不适用于主页自定义帖子类型查询

时间:2012-09-07 作者:Claudio Delgado

我花了数小时试图弄明白这一点,尝试了大量不同的方法,但都以各自的方式失败了。

我想做的是:

将主页自定义帖子类型(woo\\u estate)限制为6,然后对其余的进行分页。

发生的情况:

不仅主页自定义帖子类型不受限制,而且没有添加分页。

主页中加载的当前模板代码:

http://codepad.viper-7.com/oVYI4D

4 个回复
最合适的回答,由SO网友:Claudio Delgado 整理而成

我有一个双重疑问,这就是为什么什么都不起作用。

var_dump($wp_query);
帮助我发现了这个事实。

我使用的很多代码一开始就应该有效。

删除双重查询后,一切都恢复正常。

SO网友:Brent

是的,我最近做过类似的事情,但我就是这样做的:

 $showNum = 10;
 $startNum = 0;

 if($paged > 0){
    $pageNum = $paged - 1;
    $startNum = $pageNum * $showNum;
 } elseif($paged == 0){
    $paged = 1;
 }
然后,我继续使用修改后的$paged值来请求请求页面范围内的条目。

在您提供的代码示例中,第二行定义了$paged。如果这是一个模板文件,那么$paged变量在到达该页面时应该已经定义好了。

如果我理解正确,那么$paged变量用于确定您所在的页面。执行var_dump($wp_query); 来计算系统上当前的$paged值。

也许这会有帮助。

SO网友:Rutwick Gangurde

由于您正在使用自定义WP\\U查询和WP\\U PageNavi,这将解决分页问题:

if(function_exists(\'wp_pagenavi\')){
   wp_pagenavi(array(
        \'query\' =>$my_query
    ));
}
检查并确认是否有效!

SO网友:Rabin shrestha

您好,请在函数中粘贴此代码。php,这可能会帮助您


function change_custom_posts_per_page($query)
{
    if( !empty( $query->query_vars[\'post_type\'] ) ) {
        switch ( $query->query_vars[\'post_type\'] )
        {
            case \'woo_estate\':  // Post Type name
                $query->query_vars[\'posts_per_page\'] = 6;
                break;

            default:
                break;
        }
    }
    return $query;
}

if( !is_admin() )
{
    add_filter( \'pre_get_posts\', \'change_custom_posts_per_page\' );
}

结束

相关推荐

如何在wp-Query中比较不同的时间戳以获取事件自定义帖子类型?

我有一个带有自定义元数据库的自定义帖子类型(as seen on wptheming.com) 并且希望进行查询以显示即将发生的事件,例如在侧边栏中,过去的日期被忽略。但我需要一个当前时间的值来和事件开始时间进行比较。现在我从current_time(\'mysql\') 看起来是这样的:2012-02-16 13:15:31元的开始时间如下所示:201108121100如何使这两个日期具有可比性?我可以在查询中执行吗?或者是否有其他解决方案?以下是我到目前为止的查询(值留空,时间戳回显):<?ph