it-swarm.com.de

Benutzerdefinierte Post-Typen, gefiltert nach Taxonomie mit REST API v2

Ich habe folgende Situation:

Ich habe einen benutzerdefinierten Beitragstypnamen erstellt Works . Und auch dazugehörige benutzerdefinierte Taxonomie mit dem Namen Work Types

Hier ist der Code

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' );

Das Problem, das ich habe, ist, dass ich keinen Weg finden kann, das Works gefiltert nach Work Type mit REST API v2 zu bekommen

Ich habe gelesen, dass nach einigen WordPress-Update-Filter-Abfrage von REST API entfernt wurde. Was ist nun der richtige Weg, um dies zu tun? Können Sie bitte ein Beispiel nennen?

Danke im Voraus!

5
Robert

Ok, die Lösung war:

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

Die Arbeitstypen werden als IDs angezeigt. Sie können die IDs anzeigen in:

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

Ich habe das WP REST Filter-Plugin installiert und kann dann Beiträge nach Kategorien filtern, wie zum Beispiel:

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

in Ihrem Fall:

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

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

Dieser Link hilft

Es enthält die get_posts () -Methode, mit der post abgerufen wird

Geben Sie das Argument für die Übergabe ein

0
user162539