[英]Display Woocommerce Sorting Dropdown as a List
我正在尝试用列表替换 woocommerce 排序下拉列表,到目前为止我已经有了它,它工作正常。
问题是选项没有转换为可点击的工作链接。 我该怎么做?
<div class="wrapper-dropdown">
<span>I'm kinda the label!</span>
<ul class="dropdown">
<?php
$catalog_orderby = apply_filters( 'woocommerce_catalog_orderby', array(
'menu_order' => __( 'Default sorting', 'woocommerce' ),
'popularity' => __( 'Sort by popularity', 'woocommerce' ),
'rating' => __( 'Sort by average rating', 'woocommerce' ),
'date' => __( 'Sort by newness', 'woocommerce' ),
'price' => __( 'Sort by price: low to high', 'woocommerce' ),
'price-desc' => __( 'Sort by price: high to low', 'woocommerce' )
) );
if ( get_option( 'woocommerce_enable_review_rating' ) == 'no' )
unset( $catalog_orderby['rating'] );
foreach ( $catalog_orderby as $id => $name )
echo '<li>' . esc_attr( $name ) . '</li>';
?>
</ul>
谢谢。
你在foreach
循环中的li
标签应该是这样的:
echo '<li><a href="' . get_permalink( woocommerce_get_page_id( 'shop' ) ) . '?orderby=' . $id . '" >' . esc_attr( $name ) . '</a></li>';
woocommerce_get_page_id() 从 WC 3.0 开始被贬低
请改用此代码:
<ul class="woocommerce-ordering">
<?php
$term = get_queried_object();
$term_url = get_term_link($term->term_id);
?>
<?php foreach ($catalog_orderby_options as $id => $name) : ?>
<?php echo '<li><a href="' . $term_url . '?orderby=' . $id . '">' . esc_attr( $name ) . '</a></li>'; ?>
<?php endforeach; ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.