主题设置后WordPress WooCommerce无法正常工作

我只想在主题中自定义woocommerce主题。但是问题是当我添加woocommerce模板的文件夹以覆盖woocommerce主题并添加此功能后:

function add_woocommerce_support() { add_theme_support( 'woocommerce' ); } add_action( 'after_setup_theme', 'add_woocommerce_support' );

商店页面未显示产品列表。而是显示存档帖子。但是, 当我评论woocommerce主题设置的add_action时, 一切工作正常。看到这张图片:
主题设置后WordPress WooCommerce无法正常工作

文章图片
我也有此功能来显示我的自定义帖子类型, 存档页面中的所有帖子:
function add_cpt_program_in_archive( $query ) { if ( !is_admin() & & $query-> is_archive() & & $query-> is_main_query() ) { $query-> set( 'post_type', array('post', 'program' ) ); } } add_action( 'pre_get_posts', 'add_cpt_program_in_archive' );

我还尝试在add_cpt_program_in_archive函数的条件下添加!is_shop()。所以它看起来像这样:
function add_cpt_program_in_archive( $query ) { if ( !is_admin() & & $query-> is_archive() & & $query-> is_main_query() & & !is_shop() ) { $query-> set( 'post_type', array('post', 'program' ) ); } } add_action( 'pre_get_posts', 'add_cpt_program_in_archive' );

现在, 商店页面正在显示产品列表。但是问题是当我访问产品的类别页面时。示例未分类的类别。它不显示未分类类别的产品列表。看到这张图片:
主题设置后WordPress WooCommerce无法正常工作

文章图片
【主题设置后WordPress WooCommerce无法正常工作】对不起, 我的英语不好 :/
#1 我找到了解决方案。我在add_cpt_program_in_archive函数的条件下添加了此代码!$ query-> query_vars [‘ product_cat’ ])。所以看起来像这样
function add_cpt_program_in_archive( $query ) { if ( !is_admin() & & $query-> is_archive() & & $query-> is_main_query() & & !is_shop() & & !$query-> query_vars['product_cat']) { $query-> set( 'post_type', array('post', 'program' ) ); } } add_action( 'pre_get_posts', 'add_cpt_program_in_archive' );

但是我不知道这是正确的格式, 还是你们有一个更好的建议答案, 而不是我的解决方案。

    推荐阅读