web-dev-qa-db-ja.com

を使用して分類法でフィルタリングされたカスタム投稿タイプ REST API v2

私は以下のような状況にあります。

カスタムの投稿タイプ名 Works を作成しました。また、 Work Type という名前のカスタム分類法も付けられています。

これがコードです

function rk_work_post_type(){
$labels = array(
    'name'               => 'Work',
    'singular_name'      => 'Work',
    'add_new'            => 'Add Work',
    'all_items'          => 'All Works',
    'add_new_item'       => 'Add Work',
    'edit_item'          => 'Edit Work',
    'new_item'           => 'New Work',
    'view_item'          => 'View Work',
    'search_item'        => 'Search Work',
    'not_found'          => 'No items found',
    'not_found_in_trash' => 'No items found in trash',
    'parent_item_colon'  => 'Parent Item'
);
$args = array(
    'labels' => $labels,
    'public' => true,
    'has_archive' => true,
    'publicly_queryable' => true,
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'supports' => array(
        'title',
        'editor',
        'excerpt',
        'thumbnail',
        'revisions',
        'comments',
    ),
    // 'taxonomies' => array('category', 'post_tag'),
    'menu_icon' => 'dashicons-hammer',
    'menu_position' => 5,
    'exclude_from_search' => false,
    'show_in_rest'       => true,
    'rest_base'          => 'works',
    'rest_controller_class' => 'WP_REST_Posts_Controller',      
);
register_post_type('work',$args);
}

add_action('init','rk_work_post_type');


function rk_work_taxonomies() {
//add new taxonomy hierarchical
$labels = array(
    'name' => 'Work Types',
    'singular_name' => 'Work type',
    'search_items' => 'Search Types',
    'all_items' => 'All Work Types',
    'parent_item' => 'Parent Type',
    'parent_item_colon' => 'Parent Type:',
    'edit_item' => 'Edit Work Type',
    'update_item' => 'Update Work Type',
    'add_new_item' => 'Add New Work Type',
    'new_item_name' => 'New Work Type Name',
    'menu_name' => 'Work Types'
);

$args = array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'show_admin_column' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'work_type' ),
    'show_in_rest'       => true,
    'rest_base'          => 'work_type',
    'rest_controller_class' => 'WP_REST_Terms_Controller',      
);

register_taxonomy('work_type', array('work'), $args);
}
add_action( 'init' , 'rk_work_taxonomies' );

私が持っている問題は、私は Works /によってフィルタリングされた Work Type using REST AP​​I v2を取得する方法を見つけることができないということです。

私はいくつかのwordpress更新フィルタクエリがREST AP​​Iから削除された後にそれを読みました。それでは今これを行うための適切な方法は何ですか?いくつか例を挙げてください。

前もって感謝します!

5
Robert

わかりました、解決策は次のとおりです。

example.com/wp-json/wp/v2/works?work_type=10

それはidとしてwork_typesを見ます。あなたはIDを見ることができます:

example.com/wp-json/wp/v2/works
6
Robert

私はWP REST Filterプラグインをインストールしました、そして私は以下のようにカテゴリスラッグで投稿をフィルターにかけることができます:

http://www.example.com/wp-json/wp/v2/my_custom_posts?filter[my_custom_taxomony]=my_custom_taxonomy_slug

あなたの場合:

http://www.example.com/wp-json/wp/v2/works?filter[work_type]=building
0
DARKVIDE

https://developer.wordpress.org/reference/functions/get_posts/ /

このリンクヘルプ

投稿を取得するために使用されるget_posts()メソッドが含まれます。

投稿タイプを引数で渡す

0
user162539