【问题标题】:Woocommerce API endpoint for custom taxonomy用于自定义分类的 Woocommerce API 端点
【发布时间】:2022-01-01 20:05:09
【问题描述】:

我通过以下代码创建了一个自定义分类:

add_action('init', 'vendor_taxonomy', 0);

function vendor_taxonomy(){

    $labels = array(
        'name'                       => 'Vendors',
        'singular_name'              => 'Vendor',
        'menu_name'                  => 'Vendors',
        'all_items'                  => 'All Vendors',
        'parent_item'                => 'Parent Vendor',
        'parent_item_colon'          => 'Parent Vendor:',
        'new_item_name'              => 'New Vendor Name',
        'add_new_item'               => 'Add New Vendor',
        'edit_item'                  => 'Edit Vendor',
        'update_item'                => 'Update Vendor',
        'separate_items_with_commas' => 'Separate Vendors with commas',
        'search_items'               => 'Search Vendors',
        'add_or_remove_items'        => 'Add or remove Vendors',
        'choose_from_most_used'      => 'Choose from the most used Vendors',
    );


    $capabilities = array(
        'manage_terms' => 'manage_woocommerce',
        'edit_terms' => 'manage_woocommerce',
        'delete_terms' => 'manage_woocommerce',
        'assign_terms' => 'manage_woocommerce',
    );

    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
        'show_in_rest'               => true,
        'query_var'                  => true,
        'rest_base'                  => 'vendors',
        'rest_controller_class'      => 'WP_REST_Terms_Controller',
        'capabilities'               => $capabilities,
        'rewrite'                    => array('slug' => 'vendors'),


    );


    register_taxonomy('vendors', 'product', $args);
    register_taxonomy_for_object_type('vendors', 'product');
}

我想从 Woocommerce REST API 访问分类列表,但我总是得到404

我尝试了以下端点:

  • /wp-json/wc/v3/products/vendors/
  • /wp-json/wc/v3/vendors/

哪个应该是正确的url
为了通过 API 检索数据,我是否在创建分类法时遗漏了某些内容?

【问题讨论】:

    标签: wordpress woocommerce wordpress-rest-api custom-taxonomy woocommerce-rest-api


    【解决方案1】:

    您可以通过以下端点访问它:

    /wp-json/wp/v2/{your custom taxonomy}
    

    因此,对于您的“供应商”自定义分类,应该是这样的:

    /wp-json/wp/v2/vendors
    

    这将检索每个供应商的相关数据。

    更多详情:

    How to retrieve custom taxonomy on wordpressDocs


    如果您需要检索与“您的自定义分类法”本身相关的数据,那么您可以使用以下端点:

    /wp-json/wp/v2/taxonomies/{your custom taxonomy}
    

    例如,对于您的“供应商”自定义分类,它会是这样的:

    /wp-json/wp/v2/taxonomies/vendors
    

    更多详情:

    How to retrieve the related data on custom taxonomy itselfDocs


    作为 POC:

    我有两个供应商,分别称为“test vendor 01”和“test vendor 02”,我可以使用以下方法检索它们:

    /wp-json/wp/v2/vendors
    

    结果如下:

    【讨论】:

    • 感谢您的建议。事实上,分类法在 Wordpress API 和 /wp-json/wp/v2/vendors 下可用。我可以使用它,但最初我希望从 Woocommerce API 中检索它。在我的用例中,“供应商”是 Woocommerce 中“产品”的分类法。由于我正在构建一个主要与 Woocommerce(产品、订单等)交互的环境,因此只使用一个 API 而不是两个 API 对我来说是理想的。
    • 这不是建议,而是您问题的答案。您使用register_taxonomy 函数来注册您的分类,对吗?您已经使用 wordpress 注册了您的分类。 Woocommerce 是 wordpress 之上的一个插件。 “产品”、“订单”等是在 wordpress 中注册的自定义帖子类型。 Wordpress 和 woocommerce 是分开的。与“主要与 woocommerce”交互是与 wordpress 交互。 /wp-json/wp/v2/不管你用不用都存在,用不用都是你的答案。
    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多