我只想在主题中自定义woocommerce主题。但是问题是当我添加woocommerce模板的文件夹以覆盖woocommerce主题并添加此功能后:
function add_woocommerce_support() {
add_theme_support( 'woocommerce' );
}
add_action( 'after_setup_theme', 'add_woocommerce_support' );
商店页面未显示产品列表。而是显示存档帖子。但是, 当我评论woocommerce主题设置的add_action时, 一切工作正常。看到这张图片:
我也有此功能来显示我的自定义帖子类型, 存档页面中的所有帖子:
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' );
现在, 商店页面正在显示产品列表。但是问题是当我访问产品的类别页面时。示例未分类的类别。它不显示未分类类别的产品列表。看到这张图片:
对不起, 我的英语不好 :/
#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' );
但是我不知道这是正确的格式, 还是你们有一个更好的建议答案, 而不是我的解决方案。
评论前必须登录!
注册