为了账号安全,请及时绑定邮箱和手机立即绑定

具有动态值的自定义 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 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信