【问题标题】:How to make a theme fully compatible with WooCommerce如何使主题与Woocommerce完全兼容
【发布时间】:2014-11-13 11:42:45
【问题描述】:

Woocommerce docs 声明为了使主题兼容,这个函数应该被称为 woocommerce_content(); 但是我看到很多主题不使用它但仍然得到 WC 模板系统的全面支持。

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

要明白我的意思,让我们尝试搜索Pro themefree theme; pro 主题与 woocommerce 完全集成,并使用 woocommerce 插件目录中的模板,而免费主题仅使用普通的 search.php。同样的事情也适用于使用默认的二十四主题;它也将search.php 用于产品。

我查看了 pro 主题的代码,没有 woocommerce_content(); 所以我想知道他们是怎么做到的!

我检查了 WC 文档,但它们很差,并且没有很好地解释如何完全集成。任何想法都将不胜感激,谢谢 :)

【问题讨论】:

    标签: php wordpress themes woocommerce integration


    【解决方案1】:

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

    add_filter( 'pre_get_posts', 'woo_exclude_categories_homepage' );
    

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

    文档中没有提及以上内容,并且没有深入的 wordpress 知识,在第一页上不容易弄清楚!

    希望它可以帮助/节省其他人的时间..

    更新

    够奇怪的;原来在pre_get_posts的函数调用上执行$query->parse_query();就解决了搜索的问题!

    add_filter('pre_get_posts', 'wpf_exclude_categories_homepage');
    function wpf_exclude_categories_homepage($query) {
    
        $query->parse_query();  
    
        return $query;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多