GET_QUERY_var(‘pages’)总是返回空

时间:2012-12-18 作者:Ashkas

在遇到可能的解决方案后,将此贴在墙上。

拥有一个包含许多自定义帖子类型和相关自定义分类的网站。为了让事情变得简单,我使用了统一的taxonomy.php 样板

在该模板中有三个循环。我希望它们都在第一页上运行,然后,只运行第三个循环。我知道如何使用is_paged() 但还有一个更大的问题我无法解决。

在我的$args 我包括$paged 从…起

    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;     
但是$paged 始终返回为1,现在不管我在哪一页。如果我直奔终点

    get_query_var(\'paged\')
然后,无论我在第一、第二、第三页还是其他页面上,都不会返回任何内容。

我已经读到,您需要重置每个循环才能工作,这是我一直遵循的做法。

我不会在这里包括整个页面,因为这是一个相当长且复杂的分类法。相反,我将显示两个循环的基本设置。

NOTE: 我不能使用pre_get_posts 因为它影响所有循环。每个循环都有单独的posts_per_page 需求和其他需要分开的方面。

在模板的顶部,我有

    //this present duplication
        $do_not_duplicate = array();

        global $wp_query;
        $term = $wp_query->queried_object;
我在我的args之后用

while ($new_query->have_posts()) : $new_query->the_post();

我要分页的第三个循环附近有这个代码

    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;                                 
                $args=array(
                    \'posts_per_page\' => $total_posts,
                    \'post__not_in\' => array_merge($do_not_duplicate, $unwanted_post_ids ),
                    \'paged\' => $paged,
                    \'tax_query\' => array(
                            array(
                                \'taxonomy\'  => $term->taxonomy,
                                \'field\'     => \'slug\',
                                \'terms\'     => $term->slug,
                                )
                            )
                    );

                // Re-run the query with the new arguments
                query_posts( $args );
我一直在使用wp_query 而不是query_posts, 但对于我最近的尝试,这就是我所经历的。我更愿意把它换回来。

有什么想法吗?

3 个回复
SO网友:Steve Claridge

在试图使用get\\u query\\u var的页面URL中是否有“paged”参数?据我所知,get\\u query\\u var(“paged”)显式返回URL参数的值,因此需要有这样的URL才能工作:

/?paged=7
或者,您可以使用直接PHP读取URL参数:

$_GET[\'paged\']

SO网友:Douglas Fagundes Salvagni

尝试使用以下选项:

$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
而不是使用:

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
我也有同样的问题,这对我来说很有效。

SO网友:Dan

你应该可以直接从主$wp_query 变量,您可以执行print_r()并检查您需要的各种参数,如paged、posts\\u per\\u page等。执行此操作时,您可以在模板上看到哪些信息?

结束

相关推荐

Pagination on custom query

我正在使用以下代码query_posts 要组合自定义搜索,请执行以下操作:$args = array( \'post_type\' => \'species\', \'meta_query\' => $meta_query, \'tax_query\' => $tax_query ); $meta_query 由以下几段代码组成:if (!empty($_POST[\"s_aquarium_H\"])) {