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
所以这让我的自定义后类型和分类塞过滤它! 希望这可以帮助某人!