全局更改Wordpress查询

时间:2019-02-27 13:31:57

标签: php wordpress

我想更改帖子的结果,仅显示具有特定元值的帖子(针对整个页面)。我没有找到任何匹配的东西。

function cheese_filer() {
    $q = [
        'meta_query' => array(
            array(
                'key'     => 'cheese',
                'value'   => '3',
                'compare' => 'LIKE',
            )
        )
    ];

    return $q;
}

add_action('pre_get_posts','myf88');

function myf88($query) {
    if (  $query->is_category ) {
       $query->set('post_type', array('post','page','my_postType') );
       add_filter( 'posts_where' , 'cheese_filer' );
    }
}

1 个答案:

答案 0 :(得分:0)

我将使用WP_Query()函数通过以下方式进行操作:

$args = array(
    'post_type' => array('post','page','my_postType'),
    'category_name' => 'your_category',
    'meta_query' => array(
          'key'     => 'cheese',
          'value'   => '3',
          'compare' => 'LIKE'
    )
);
$my_loop = new WP_Query($args);

然后是循环:

if ( $my_loop->have_posts() ) : while ( $my_loop->have_posts() ) : $my_loop->the_post(); 
  [ ... ] // get the custom field contents
endwhile;  else:
  [ ... ] // nothing found message/action
endif;