如何在WordPress的Redux框架中实现产品列表的Select下拉框
Redux框架实现Select下拉框展示产品列表
要让Redux的Select组件正确显示产品列表,你可以通过自定义回调函数精准获取产品数据,比默认的post_type数据源更灵活,具体步骤如下:
1. 定义产品查询回调函数
先编写一个函数,查询所有发布状态的产品并整理成Select组件需要的键值对格式:
function get_redux_product_options() { $product_options = array(); // 查询参数:获取所有已发布的产品,按标题升序排列 $products = get_posts(array( 'post_type' => 'product', 'post_status' => 'publish', 'posts_per_page' => -1, // 获取全部产品 'orderby' => 'title', 'order' => 'ASC' )); if (!empty($products)) { foreach ($products as $product) { $product_options[$product->ID] = $product->post_title; } } else { $product_options[''] = '暂无产品'; } return $product_options; }
2. 修改Redux字段配置
将原来的data参数改为callback,指向上面定义的函数,确保组件能正确调用产品列表:
$fields = array( 'id' => 'creations_pro_id', 'type' => 'select', 'title' => '选择关联产品', // 可选:添加字段标题提升可读性 'data' => 'callback', 'args' => array( 'function' => 'get_redux_product_options' ) ),
注意事项
- 确保你的
product自定义文章类型注册时设置了public => true,否则get_posts无法查询到数据; - 回调函数要在Redux字段注册之前定义,或者通过
add_action('init', 'get_redux_product_options')确保函数被提前加载; - 如果需要筛选特定分类的产品,可以在
get_posts参数里添加tax_query实现更精准的筛选。
内容的提问来源于stack exchange,提问作者yasin1364
相关产品推荐
相关产品推荐

