Get_Query_var函数根本不起作用

时间:2013-06-28 作者:diligent

是的,关于这个函数有一些类似的主题,get_query_var(\'paged\') giving same result

blog posts sorting doesnt work while using get_query_var

我正在使用wordpress3。5、我有own 基于php mysql的系统,我需要集成一个博客功能,我只需要列出latest posts 在seprate php文件上oreder by post-date. 基本上,我的要求很简单:

list all of posts on a php file, suppose this file\'s name is blog_show.php
因为我将使用wordpress的API,在wordpress之外,我需要先导入wordpress,您可以从这里找到方法Integration Wordpress with your sites

以下是我的一些博客秀。php

define(\'WP_USE_THEMES\', false);
require_once \'../blog/wp-load.php\';

global $wp_query;
wp_reset_query();

$current_page = (get_query_var(\'p\')) ? get_query_var(\'p\') : 1;

$query_args = array(
    \'orderby\' => \'date\',
    \'order\' => \'DESC\',
    \'post_type\' => \'post\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => 2,
    \'paged\' => $current_page,
    //\'add_args\' => true

);
$lateset_posts = new WP_Query($query_args);


$paging_args = array(
    \'base\'         => \'%_%\',
    \'format\'       => \'?p=%#%\',
    \'total\'        => 10,
    \'current\'      => $current_page,
    \'end_size\'     => 1,
    \'mid_size\'     => 1,
    \'prev_next\'    => True,
    \'prev_text\'    => __(\'« Previous\'),
    \'next_text\'    => __(\'Next »\')
);
$lateset_posts_paging = paginate_links($paging_args);
一切都好,我可以用

$lateset_posts = new WP_Query($query_args);
找到我想要的帖子。但我不能使用

get_query_var(\'p\')
我总是得到相同的值。我发现即使我声明wp\\u query是gloable的,它仍然不能使用,几乎wp\\u query的每个字段都是null.

因为get_query_var(\'p\')$wp_query 不能使用,所以我的页码也是不能使用的。

如您所见,varp 仅在两个地方使用

$current_page = (get_query_var(\'p\')) ? get_query_var(\'p\') : 1;
$query_args = array(
       //something
       \'paged\' => $current_page,
    );
以及

$paging_args = array(
        \'base\'         => \'%_%\',
        \'format\'       => \'?p=%#%\', //P\'s here
        \'total\'        => 10,
        \'current\'      => $current_page,
        \'end_size\'     => 1,
        \'mid_size\'     => 1,
        \'prev_next\'    => True,
        \'prev_text\'    => __(\'« Previous\'),
        \'next_text\'    => __(\'Next »\')
    );
我有一个测试,即使我改变了ppagedanything else, 仍然得到相同的错误。

我哪里错了,我需要一些额外的php文件吗?谢谢

1 个回复
SO网友:Krzysiek Dróżdż

WordPress不会自动将所有查询字符串参数($\\u GET params)添加为query_vars

查询变量时somevar 未注册:示例。com/一些页面/?somevar=你好-WordPress忽略somevar

查询变量时somevar 已注册:示例。com/一些页面/?somevar=hello-WordPress将此参数的值存储在$wp\\u query->query\\u vars数组中

向WordPress注册该变量的区别在于该值是否存储在WP\\U查询对象中。。(无论如何,它应该仍然可以通过$\\u GET获得)。

要注册自定义查询变量,应使用:

add_filter(\'query_vars\', \'add_my_var\');
function add_my_var($public_query_vars) {
    $public_query_vars[] = \'some_unique_identifier_for_your_var\';
    return $public_query_vars;
}
另外,请注意不要使用默认的WordPress query\\u var名称-我想,您可能会遇到一些冲突。

结束

相关推荐

WP_Query breaks pagination

我已经研究这个问题一周了。我搜索了无数没有回答这个问题的帖子。我的wp\\u查询似乎破坏了分页。我已经在这里浏览了很多关于wp\\U查询和分页的帖子,但仍然毫无乐趣。据我所知,它的设置是正确的。我有一个实例,它将在一个页面中显示所有帖子,而在另一个页面中,它会重复每个页面上的内容。请参阅下面的代码,以获取带注释的精简版本。有人知道问题出在哪里吗?<?php /* Let\'s asume that this is the search query in the