如何将参数传递给WP_Query以便在pre_get_posts中进行过滤?

时间:2014-07-30 08:55:57

标签: wordpress filter wp-query

我需要将参数传递给WP_Query以便在pre_get_posts中进行过滤。你能告诉我为什么我的来源不起作用吗?

function yo_pre_get_posts( $query ){
  if( $query->get( 'yo_custom_var' ) == 'foobar' )
{
    global $wpdb; 
    $request = 'a';
    $offset = 0;
    if( isset($_GET['page']) && !empty($_GET['page']) ){
    $offset =  ($_GET['page']-1) * 100;
}

     $query = $wpdb->get_results("
            SELECT * FROM $wpdb->posts
            WHERE post_title LIKE '$request%'
            AND post_type = 'artist'
            AND post_status = 'publish'
            LIMIT 100 OFFSET $offset;
            ");

return $query;     }  
}
add_action( 'pre_get_posts', 'yo_pre_get_posts', 10 );

WP_Query

$wp_query = new WP_Query( array(
  ...
  'yo_custom_var' => 'foobar',
  ...
) );

1 个答案:

答案 0 :(得分:0)

过去我遇到过类似的问题。 在我的情况下,我解决了在循环外移动global $wpdb;