我试图从数组中获取第二个值并将其标记为$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>';
};
非常感谢任何帮助!
答案 0 :(得分:2)
__()
函数似乎用于获取字符串转换,因此您需要将图标字符串作为单独的变量传递。你可以使用多维数组来做到这一点。
$catalog_orderby = apply_filters('woocommerce_catalog_orderby', array(
'menu_order' => array(__( 'Default', 'woocommerce' ), ''),
'date' => array(__( 'Whats New', 'woocommerce' ), ''),
'popularity' => array(__( 'Popularity', 'woocommerce' ), ''),
'rating' => array(__( 'Average Rating', 'woocommerce' ), ''),
'price' => array(__( 'Price: Low to High', 'woocommerce' ), ''),
'price-desc' => array(__( 'Price: High to Low', 'woocommerce' ), '')
));
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', '', 'woocommerce')
更改为array('Default', '', 'woocommerce')
,则可以通过$name[1]