我添加了自定义共享分类法season
对于product
来自woocommerce的类型和我的自定义类型care
. Care
类型和分类是在中创建的functions.php
自定义主题的文件。
add_action(\'init\', function() {
register_post_type(\'care\', array(
\'labels\' => array(
\'name\' => __(\'Cares\'),
\'singular_name\' => __(\'Care\'),
),
\'menu_position\' => 4,
\'public\' => true,
\'show_ui\' => true,
\'has_archive\' => true,
\'publicly_queryable\' => true,
\'supports\' => array(\'title\')
));
register_taxonomy( \'season\',
array(\'product\', \'care\'),
array(
\'label\' => __(\'Season\'),
\'show_ui\' => true,
\'hierarchical\' => true,
)
);
});
现在当我访问
season
分类学术语
post_type
通过后,我始终可以访问woocommerce产品档案,即。
http://example.com/?season=helloworld&post_type=product 和
http://example.com/?season=helloworld&post_type=care 引导至woocommerce产品档案的同一页面。
如何使woocommerce正确地共享分类法?
P、 使用WordPress 3.8.1和Woocommerce 2.0.20。未添加明确的重写规则。
最合适的回答,由SO网友:rpeshkov 整理而成
已找到此问题的解决方案。
事实证明,woocommerce影响post_type
中的查询变量pre_get_posts
过滤而不检查另一个post_type
已请求。已经完成了WC_Query.product_query
方法:
if ( ! $q->is_tax( \'product_cat\' ) && ! $q->is_tax( \'product_tag\' ) )
$q->set( \'post_type\', \'product\' );
解决这个问题很简单。你只需要检查一下
product
在开始时实际请求了post类型
product_query
方法:
// Check that product post type has been requested
if ($q->get(\'post_type\') != \'product\')
return;
之后一切正常。
Update:修复程序已合并到woocommerce主分支:https://github.com/woothemes/woocommerce/pull/4582.