簡體   English   中英

如何訪問/發布 WordPress JSON REST ZDB974238714CA8DE634A7CE1DZ03 和過濾器?

[英]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_restpublic

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

有關此的更多信息: https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-rest-api-support-for-custom-content-types/

設置完成后,您可以使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM