我已经设置了一系列产品值。我需要将每个数组键设置为data-attribute,将值设置为data-attribute值
<li data-name="product1" data-price="49.99" data-rating="4.5"></li>
所以在Wordpress中我有这个过滤器挂钩
function product_data_sorting( $product_attrs, $product, $terms) {
global $post;
// Product Attributes
$product_attrs['name'] = $post->post_name;
$product_attrs['price'] = $product->price;
$product_attrs['rating'] = $product->get_average_rating();
$product_attrs['newness'] = $post->post_modified;
// Product Categories
foreach ($terms as $term) {
$categories[] = $term->slug;
}
$product_attrs['categories'] = $categories;
foreach ($product_attrs as $attribute) {
if ( is_array($attribute) ) {
//This is a category
}
else {
$results[] = 'data-' . $key . '="' . '$attribute' . '"';
}
}
return $results
}
add_filter( 'add_sorting', 'product_data_sorting', 10, 3 );
我将所有正确的数据推送到我需要的$ product_attrs数组,但不知道如何使用数组键和值,以便在$ results数组中它的格式如下:
$results = (data-name="product1", data-price="49.99", data-rating="4.5");
希望有道理
感谢
答案 0 :(得分:0)
key=>value
内需要foreach
对。
$ignored = array ('newness'); // array to maintain what attributes you want to ignore
foreach ($product_attrs as $key => $attribute) {
if ( is_array($attribute) ) {
//This is a category
}
else {
if(!inarray($key, $ignored)
$results[] = 'data-' . $key . '="' . $attribute . '"';
}
}
另请注意,$ title不会像问题中那样用单引号括起来。单引号内的变量无法解析