【问题标题】:How to pass argument to WP_Query for filtering in pre_get_posts?如何将参数传递给 WP_Query 以在 pre_get_posts 中进行过滤?
【发布时间】:2014-09-09 17:40:07
【问题描述】:

我需要将参数传递给 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',
  ...
) );

【问题讨论】:

    标签: filter wordpress


    【解决方案1】:

    我过去也遇到过类似的问题。 就我而言,我解决了将global $wpdb; 移到循环之外的问题。

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 2015-03-22
      • 1970-01-01
      • 2016-04-17
      • 2021-12-02
      相关资源
      最近更新 更多