如何使主题与WooCommerce完全兼容

时间:2014-09-19 00:13:57

标签: php wordpress themes woocommerce integration

Woocommerce docs声明为了使主题兼容,应该调用此功能woocommerce_content();但是我看到很多主题都没有使用,但仍然得到WC的全力支持模板系统。

准确地说,例如在进行产品搜索时,我需要使用woocommerce加载此templates\loop\result-count.php,而不是仅仅应用过滤器并显示主题search.php

要了解我的意思,让我们尝试搜索Pro themefree theme;专业主题与woocommerce完全集成,并使用woocommerce插件目录中的模板,而免费主题只使用普通search.php。同样的事情适用于使用默认的Twenty Fourteen主题;它也为产品使用search.php

我查看了专业主题的代码并且没有woocommerce_content();所以我想知道他们是如何做到的!

我检查了WC文档,但他们很穷,并且不能很好地解释如何完全整合..任何想法都将受到赞赏,谢谢:)

1 个答案:

答案 0 :(得分:0)

经过一些非正统的调试方式,我终于找到了为什么Woocommerce没有加载上面给出的例子(搜索时),专业主题从搜索查询中删除了类别!

add_filter( 'pre_get_posts', 'woo_exclude_categories_homepage' );

这使得woocommerce在检查woocommerce_products_will_display()时会进一步验证,并且调用is_product_taxonomy()也会更深入并调用is_tax( get_object_taxonomies( 'product' ) )

文档中没有提到上述内容,如果没有wordpress的深入了解,在第一页上弄清楚就不容易了!

希望它有助于/节省其他人的时间..

<强>更新

奇怪;事实证明,在$query->parse_query();的函数调用上执行pre_get_posts解决了搜索的问题!

add_filter('pre_get_posts', 'wpf_exclude_categories_homepage');
function wpf_exclude_categories_homepage($query) {

    $query->parse_query();  

    return $query;
}