繁体   English   中英

显示 Woocommerce 将下拉列表排序为列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM