WordPress Rest API过滤器通过id或slug名称

WordPress Rest API过滤器通过id或slug名称

问题描述:

我坚持过滤分类在我的WordPress。 首先,我在function.php有这样的 - >我做了自定义文章类型和自定义分类:WordPress Rest API过滤器通过id或slug名称

function create_post_types() { 
register_post_type('skole', 
    array(
     'labels' => array(
      'name' => _('Skole'), 
      'singular_name' => _('Skola') 
     ), 
     'public' => true, 
     'menu_icon' => 'dashicons-welcome-learn-more', 
     'has_archive' => true, 
     'show_in_rest' => true, 
     'rest_base' => 'skole', 
     'rest_controler_class' => 'WP_REST_Post_Controller' 

    ) 
); 
} 
add_action('init', 'create_post_types'); 

function create_custom_taxonomies() { 
register_taxonomy(
    'tip_skole', 
    'skole', 
    array(
     'label' => 'Tip skole', 
     'hierarchical' => true, 
     'show_in_rest'  => true, 
     'rest_base'   => 'tip_skole', 
     'rest_controller_class' => 'WP_REST_Terms_Controller', 
    ) 
); 
add_action('init', 'create_custom_taxonomies'); 

我已经安装了WP REST API插件,现在我做的.js的文件:

var test = jQuery('#test'); 
if (test) { 
test.on('click', function() { 
    var ourRequest = new XMLHttpRequest(); 
    ourRequest.open('GET', 'http://localhost/skola/wp-json/wp/v2/tip_skole/'); 
    ourRequest.onload = function() { 
     if (ourRequest.status >= 200 && ourRequest.status < 400) { 
      var data = JSON.parse(ourRequest.responseText); 
      console.log(data); 
      createHtml(data); 
     } else { 
      console.log("We conected to the server, but error"); 
     } 
    } 
    ourRequest.onerror = function() { 
     console.log('Connection error'); 
    } 
    ourRequest.send(); 
}); 
} 
function createHtml(postData) { 
var ourHTMLString = ''; 
for (var i = 0; i < postData.length; i++) { 
    ourHTMLString += '<a href="' +postData[i].link + '"><h2>' + postData[i].name + '</h2></a>'; 
    console.log(postData); 
} 
var x = jQuery('.skole__single'); 
// x.innerHTML = ourHTMLString; 
jQuery('.skole__single').append(ourHTMLString); 

console.log(ourHTMLString); 

} 

因此,在这个.js文件中,我得到了正确的结果,但是当我想看到这个分类中的所有帖子时,我不知道如何。所以在分类学'tip_skole'我有“A”,“B”,“C”和“D”。 因此,这里是我的尝试:

http://localhost/skola/wp-json/wp/v2/tip_skole?filter[id]=2 
http://localhost/skola/wp-json/wp/v2/tip_skole?id=2 
http://localhost/skola/wp-json/wp/v2/tip_skole?[name]=A 
http://localhost/skola/wp-json/wp/v2/tip_skole?filter[name]=A 
http://localhost/skola/wp-json/wp/v2/tip_skole?filter[slug]=A 

任何帮助吗?

首先WordPress的不支持过滤器在4.7+版本,所以我得到https://github.com/WP-API/rest-filter插件,而且比我需要的是

http://localhost/skola/wp-json/wp/v2/skole/?filter[tip_skole]=skole-stranih-jezika 

所以这让我的自定义后类型和分类塞过滤它! 希望这可以帮助某人!