Wordpress使用数组键和值来设置数据属性

时间:2013-11-22 12:47:27

标签: arrays wordpress key

我已经设置了一系列产品值。我需要将每个数组键设置为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");

希望有道理

感谢

1 个答案:

答案 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不会像问题中那样用单引号括起来。单引号内的变量无法解析