改变全球发布查询(wordpress)

时间:2011-11-10 13:32:35

标签: wordpress

我想知道是否有办法改变全球wordpress帖子查询。

假设我在标签档案中。我需要能够更改订单和posts_per_page变量

当我使用它时:

global $wp_query;
$wp_query->set('order', 'ASC');

它会更改变量,但不会更改帖子顺序。

创建另一个查询可以完成这项工作,但这样做需要我对标签,档案,搜索结果等使用不同的查询,这对我来说不是一个选项。

我希望你明白我需要什么。

关于如何解决这个问题的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果你使用query_posts()并通过你的参数传递它将修改循环。 http://codex.wordpress.org/Function_Reference/query_posts

答案 1 :(得分:1)

我修改了functions.php中的wordpress查询:

add_action('pre_get_posts','myf88');function myf88($query) {
    if ( !is_admin() && $query->is_main_query() )   {
        if (  $query->is_category ) {
            $query->set('post_type', array('post','page','my_postType') );
            add_filter( 'posts_where' , 'MyFilterFunction_1' ); 
        }
        //for "PAGE" type, this doesnt work (IT is WORDPRESS FAULT) , so you may modify "query_posts" in page.php,before loop
    }
}
function MyFilterFunction_1($where) {global $wpdb;  $where .= " AND ({$wpdb->posts}.post_name NOT LIKE 'Journal%')"; return $where;  }