亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有動態值的自定義 WooCommerce 端點不起作用

具有動態值的自定義 WooCommerce 端點不起作用

PHP
慕姐8265434 2023-10-15 15:08:04
我想為 WooCommerce 創建一個具有動態價值的新端點。不幸的是我出錯了rest_no_route。這是代碼(插件):<?php function filter($data){    $brand = $data['brand'];    $products = [];    $loop = new WP_Query( array(        'post_type'      => 'product',        'posts_per_page' => -1,        'meta_query'     => array( array(            'key'        => 'brands.id',            'value'      => $brand,            'compare'    => '=',        )),    ));    if ( $loop->have_posts() ){        while ( $loop->have_posts() ){            $loop->the_post();            array_push($products, get_post())        }         wp_reset_postdata();    }    return $products;    }add_action( 'rest_api_init', function () {  register_rest_route( '/wc/v3', '/brand=(?P<brand>\d+), array(    'methods' => 'GET',    'callback' => 'brand',  ) );} );?>這就是我嘗試訪問的方式:/wp-json/wc/v3/brand=1623這是brand產品內部屬性的樣子:"brands": [            {                "id": 1623,                "name": "HUGO BOSS",                "slug": "hugo-boss"            }        ],感謝您的每一個幫助!
查看完整描述

1 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

這是關于分類術語(不是發布元數據),特別是 WooCommerce 品牌,因此您需要使用稅務查詢,如下所示(假設您使用的是 WooCommerce 品牌,因此分類應為"product_brand")。


所以你的函數應該WP_Query是:


function filter($data){

    if( isset($data['brand']) && $data['brand'] > 0 ) {

        $taxonomy = 'product_brand'; // The taxonomy for WooCommerce Brands

        

        $products = (array) get_posts( array(

            'post_type'      => 'product',

            'post_status'    => 'publish',

            'posts_per_page' => -1,

            'tax_query'      => array( array(

                'taxonomy'      => $taxonomy,

                'field'         => 'term_id',

                'terms'         => intval($data['brand']),

            ) ),

        ) );

        

        // return an array of WP_Post Objects (or an empty array)

        return $products; 

    }    

}

它應該更好地工作。您應該使用自定義名稱以不同的方式命名您的函數。


查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 106 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號