wordpress - 主题设置后的 WordPress WooCommerce 不起作用
问题描述
我只想在我的主题中自定义 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' );
商店页面现在显示产品列表。但问题是当我访问产品的类别页面时。例如未分类的类别。它不显示未分类类别中的产品列表。看这张图片:
解决方案
我找到了解决方案。我在 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' );
但我不知道这是否是正确的格式,或者也许你们有更好的建议答案而不是我的解决方案。
推荐阅读
- xamarin - Prism Navigation 在导航到其他页面后保留 MasterPageDetail 菜单
- pygsheets - 没有空值的pygsheet工作表大小
- azure - 使用 Azure 服务结构设置 Azure Function 代理
- excel - 表扩展而不是创建
- .htaccess - 多个 RewriteRules 的 RewriteCond
- sql-server - SQL Server:从早上 8 点到午夜,页面预期寿命 (PLE) 为零
- ms-word - Split title in two lines in Rmarkdown for word output
- ios - scrollview以编程方式初始位置swift 4
- kubernetes - “幽灵”kubernetes pod 卡在终止状态
- java - 带有多个附件的 Android 电子邮件意图