2014-09-19 4 views
0

Woocommerce docs утверждают, что для того, чтобы сделать тему совместимой, эту функцию следует называть woocommerce_content(); Но я видел много тем, которые не используют это, но все равно получают полную поддержку шаблонов WC система.Как сделать тему полностью совместимой с WooCommerce

Чтобы быть точным, например, при поиске продукта, мне нужна woocommerce для загрузки этого templates\loop\result-count.php вместо простого применения фильтров и отображения темы search.php.

Чтобы посмотреть, что я имею в виду, давайте попробуем выполнить поиск как на Pro theme, так и на free theme; про тема полностью интегрирована с woocommerce и использует шаблоны из каталога плагинов woocommerce, тогда как бесплатная тема просто использует обычный search.php. То же самое относится к использованию темы Twenty Fourteen по умолчанию; он использует search.php тоже для продуктов.

Я заглянул в код про темы, и нет woocommerce_content();, поэтому мне интересно, как они это делают!

Я проверил документы WC, но они бедны и не объясняют очень хорошо, как полностью сделать интеграцию .. Любые идеи будут оценены, спасибо :)

ответ

0

После некоторых неортодоксальных способов отладки, я, наконец, узнайте, почему Woocommerce не загружается в приведенном выше примере (при поиске), про тема удаляет категории из поискового запроса!

add_filter('pre_get_posts', 'woo_exclude_categories_homepage'); 

Это делает WooCommerce Validate при проверке против woocommerce_products_will_display(), который идет дальше и называет is_product_taxonomy(), что также идет глубже и вызывает is_tax(get_object_taxonomies('product'))!

В документации не упоминается ничего вышеизложенного и без глубокого знания Wordpress, это не легко понять на первой странице!

Надеется, что это помогает/экономит время на кого-то еще ..

Обновления

достаточно странно; Оказывается, что выполнение $query->parse_query(); по вызову функции pre_get_posts решает ussie поиска!

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

    $query->parse_query(); 

    return $query; 
} 
Смежные вопросы