特定のユーザーによるすべての投稿をrest jsonの出力から削除するためのプラグインを作成したいです。 filter または hook を追加するにはどうすればよいですか。
WP 4.7+を使用している場合は、rest_$type_query
フックwp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:L267
を使用してクエリをフィルタリングできます。
これは現在のクエリを与えられた用語でフィルタリングする実用的な例です。
$types = [
'post',
'page',
];
foreach ( $types as $type ) {
add_filter( 'rest_' . $type . '_query', 'filter_rest_query_by_zone', 2, 10 );
}
function filter_rest_query_by_zone( $args, $request ) {
$zones = [ 'term1', 'term2', 'term3' ];
$args['tax_query'] = array(
'relation' => 'AND',
array(
'taxonomy' => 'zones',
'field' => 'term_id',
'terms' => $zones
)
);
return $args;
}
オウムのように感じ始めましたが、ここでもまた行きます。管理者、それが何らかの方法でそれらを変更することになるだろうより危険です。