看看你的主题是否有archive-product.php
woocommerce文件夹中的文件。这是WooCommerce类别模板的副本(显示方式为archive-product.php
. 只要模板具有do_action( \'woocommerce_before_shop_loop\' );
动作挂钩,然后woocommerce_catalog_ordering()
应自动调用优先级为30的函数。。。正如它在代码注释中直接指出的那样。您的主题模板需要为WooCommerce 2.0更新,或者您的主题有意删除了woocommerce_catalog_ordering()
来自的函数woocommerce_before_shop_loop
.
<?php
/**
* The Template for displaying product archives, including the main shop page which is a post type archive.
*
* Override this template by copying it to yourtheme/woocommerce/archive-product.php
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.0.0
*/
if ( ! defined( \'ABSPATH\' ) ) exit; // Exit if accessed directly
get_header(\'shop\'); ?>
<?php
/**
* woocommerce_before_main_content hook
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
*/
do_action(\'woocommerce_before_main_content\');
?>
<?php if ( apply_filters( \'woocommerce_show_page_title\', true ) ) : ?>
<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
<?php endif; ?>
<?php do_action( \'woocommerce_archive_description\' ); ?>
<?php if ( have_posts() ) : ?>
<?php
/**
* woocommerce_before_shop_loop hook
*
* @hooked woocommerce_result_count - 20
* @hooked woocommerce_catalog_ordering - 30
*/
do_action( \'woocommerce_before_shop_loop\' );
?>
<?php woocommerce_product_loop_start(); ?>
<?php woocommerce_product_subcategories(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php woocommerce_get_template_part( \'content\', \'product\' ); ?>
<?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php
/**
* woocommerce_after_shop_loop hook
*
* @hooked woocommerce_pagination - 10
*/
do_action( \'woocommerce_after_shop_loop\' );
?>
<?php elseif ( ! woocommerce_product_subcategories( array( \'before\' => woocommerce_product_loop_start( false ), \'after\' => woocommerce_product_loop_end( false ) ) ) ) : ?>
<?php woocommerce_get_template( \'loop/no-products-found.php\' ); ?>
<?php endif; ?>
<?php
/**
* woocommerce_after_main_content hook
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action(\'woocommerce_after_main_content\');
?>
<?php
/**
* woocommerce_sidebar hook
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action(\'woocommerce_sidebar\');
?>
<?php get_footer(\'shop\'); ?>
Updated based on your template code:
仅仅因为您使用的是WooCommerce 2.0,并不意味着您的主题模板已经更新。我已经为好几个客户做了这件事。然而,行动挂钩
do_action( \'woocommerce_before_shop_loop\' );
存在。我会:
验证它是否在标记(查看源代码)中并被CSS隐藏,检查所有函数是否有可能删除该函数的内容:remove_action(\'woocommerce_before_shop_loop\', \'woocommerce_catalog_ordering\', 30);
检查所有函数,以获取修改后的定义woocommerce_catalog_ordering()
重命名存档产品。php模板临时归档到其他产品测试。php,以便WooCommerce将加载其默认模板,而无需访问您的网站/代码,这就是我所能建议的。