从数组中获取第二个值

时间:2018-05-27 11:14:47

标签: php html

我试图从数组中获取第二个值并将其标记为$icon但是我仍在学习PHP。无论我尝试什么都没有帮助。这适用于运行自定义主题的WooCommerce网站。以下代码已放在functions.php文件中。

$catalog_orderby = apply_filters('woocommerce_catalog_orderby', array(
    'menu_order' => __( 'Default', '', 'woocommerce' ),
    'date'       => __( 'Whats New', '', 'woocommerce' ),
    'popularity' => __( 'Popularity', '', 'woocommerce' ),
    'rating'     => __( 'Average Rating', '', 'woocommerce' ),
    'price'      => __( 'Price: Low to High', '', 'woocommerce' ),
    'price-desc' => __( 'Price: High to Low', '', 'woocommerce' )
));

foreach( $catalog_orderby as $id => $name ) {
    echo '<li><a href="' . get_permalink( woocommerce_get_page_id( 'shop' ) ) . '?orderby=' . $id . '"><i class="fa">' . $icon . '</i>' . esc_attr( $name ) . '</a></li>';
};

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

__()函数似乎用于获取字符串转换,因此您需要将图标字符串作为单独的变量传递。你可以使用多维数组来做到这一点。

$catalog_orderby = apply_filters('woocommerce_catalog_orderby', array(
    'menu_order' => array(__( 'Default', 'woocommerce' ), '&#xf0dc;'),
    'date'       => array(__( 'Whats New', 'woocommerce' ), '&#xf219;'),
    'popularity' => array(__( 'Popularity', 'woocommerce' ), '&#xf087;'),
    'rating'     => array(__( 'Average Rating', 'woocommerce' ), '&#xf123;'),
    'price'      => array(__( 'Price: Low to High', 'woocommerce' ), '&#xf162;'),
    'price-desc' => array(__( 'Price: High to Low', 'woocommerce' ), '&#xf163;')
));

foreach( $catalog_orderby as $id => $item ) {
    echo '<li><a href="' . get_permalink( woocommerce_get_page_id( 'shop' ) ) . '?orderby=' . $id . '"><i class="fa">' . $item[1] . '</i>' . esc_attr( $item[0] ) . '</a></li>';
};

答案 1 :(得分:2)

为什么使用_()函数,它似乎是一个翻译函数?

如果您将__('Default', '&#xf0dc;', 'woocommerce')更改为array('Default', '&#xf0dc;', 'woocommerce'),则可以通过$name[1]

在循环中访问它