[英]How to access /posts WordPress JSON REST API and filter by post_type?
我在 wp_3_posts 表中有許多帖子,post_type 為“人”。 這個 post_type 是使用 Admin Columns 插件創建的。
我如何檢索這些?
Posts 的文檔提供按類別或標簽進行過濾,但 post_type 都不是。
https://developer.wordpress.org/rest-api/reference/posts/
謝謝:]
如果我以正確的方式解決了您的問題,您希望使用 REST API 獲得自定義帖子類型的帖子。
當您在 wordpress 中創建自定義帖子類型時,您必須在 arguments 中設置show_in_rest
和public
。
add_action( 'init', 'my_cpt' );
function my_cpt() {
$args = array(
'public' => true,
'show_in_rest' => true,
'label' => 'My Custom Post'
);
register_post_type( 'mycustompost', $args );
}
設置完成后,您可以使用 url 中的正確參數獲取帖子類型的帖子。
因此,如果您只想獲取帖子,可以使用:
https://yoursite.com/wp-json/wp/v2/mycustompost?per_page=10
如果您收到很多帖子,我建議設置per_page
以進行控制。
您還可以使用_embed
訪問更多數據,而無需額外的 HTTP 請求
https://yoursite.com/wp-json/wp/v2/mycustompost?per_page=10&_embed=wp:term,wp:featuredmedia
例如,通過這個,您可以獲得不同特色圖像大小的分類術語和 url。
因此,您不需要獲取您網站的所有帖子(和帖子類型),然后按帖子類型進行過濾,而只需獲取此帖子類型的帖子即可。 您可以使用全局參數進行更多過濾:
https://developer.wordpress.org/rest-api/using-the-rest-api/global-parameters/
使用 VueJS(在我看來更好的性能)這看起來像:
fetch("https://yoursite.com/wp-json/wp/v2/mycustompost?per_page=10")
.then(response => response.json())
.then((data => {
this.mycustompost = data;
}))
或者,如果使用標准 javascript 類似:
let state = {
posts: [],
baseUrl: 'https://yoursite.com/wp-json/wp/v2/mycustompost',
perPage: '?per_page=10',
wpFetchHeaders: {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Expose-Headers': 'x-wp-total'
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.