web-dev-qa-db-ja.com

からの結果を除外 REST API

特定のユーザーによるすべての投稿をrest jsonの出力から削除するためのプラグインを作成したいです。 filter または hook を追加するにはどうすればよいですか。

4
AVEbrahimi

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;
    }
3
Alex Sancho

オウムのように感じ始めましたが、ここでもまた行きます。管理者、それが何らかの方法でそれらを変更することになるだろうより危険です。

0
Mark Kaplun