rest_post_query 過濾查詢參數用法

更新日期:2020-12-21

讀取文章的時候,可以用這個函數做自訂篩選條件的過濾。以下列舉幾個常用的參數:

add_filter('rest_post_query', function ($args, $request) {

    // 每頁數量
    $args['posts_per_page'] = 50;

    // 分類
    $args['category__and'] = array(1,22);  //該文章同時有這些分類id
    $args['category__in'] = array(1,22);  //該文章有符合其中一個分類
    $args['category__not_in'] = array(1,22);  //該文章沒有符合其中一個分類

    // 符合單一 meta_key
    $args['meta_key'] = 'name';
    $args['meta_value'] = 'value';

    // 符合多個 meta_key
    $args['meta_query'] = [
      [
        'key' => 'name1',
        'value' => 'value1'
      ],
      [
        'key' => 'name2',
        'value' => 'value2'
      ]
    ];

    // 符合其中一個
    $args['meta_query'] = [
      'relation' => 'OR',
      [
        'key' => 'name1',
        'value' => 'value1'
      ],
      [
        'key' => 'name2',
        'compare' => 'NOT EXISTS'
      ]
    ];

    // 在特定時間之後(大於)
    $args['date_query'][0]['after'] = '2020-01-01 00:00:00';
    // 在特定時間之前(小於)
    $args['date_query'][0]['before'] = '2020-01-01 00:00:00';
    // 特定日期,年月日可組合,至少一個
    $args['year'] = 2020;    //符合"年"
    $args['monthnum']= 10;   //符合"月"
    $args['day'] = 1;     //符合"日"

    // return
    return $args;
} , 10 ,2);

參考:https://developer.wordpress.org/reference/classes/wp_meta_query/

發佈留言