2015-11-09 2 views
1

Я хочу возможность выбора между сеткой и списком для каждой категории Woocommerce. Я нашел этот плагин: https://nl.wordpress.org/plugins/woocommerce-grid-list-toggle/Woocommerce выбирает сетку или просмотр списка для каждой категории

Однако плагин предназначен для того, чтобы покупатель мог выбирать, отображать ли элементы в виде сетки или в виде списка. Я действительно хочу, чтобы можно было назначить представление для каждой категории в фоновом режиме.

Пример:

Категория A отображается в виде сетки категории B отображается в виде списка

Ломая голову над этим.

+0

Не с ума отличается от http://stackoverflow.com/a/33622302/383847. только немного отличающаяся условная логика. Если вы хотите установить стиль отображения в администраторе, вам нужно будет добавить термин meta. У WooCommerce есть функции для этого, и он входит в ядро ​​WordPress в 4.4. – helgatheviking

+0

@helgatheviking Спасибо за ответ. Этот код работает не для меня, но будет здорово. У меня есть категория с именем Nussmylch и только для просмотра списка для этой категории. – Robin

+0

всегда помогает точно определить, что не работает. Это помогает другим приблизиться к вещам быстрее, чем общий (и очень страшный) «он не работает» :) Я сделал еще одну попытку, см. Мой ответ ниже. – helgatheviking

ответ

2

Как и в случае с this question, вам необходимо фильтровать template_include. Вам необходимо вызвать свой собственный шаблон архива archive-list-view.php и сохранить его в папке woocommerce вашей темы. Очевидно, вы можете называть его чем угодно, вам просто нужно настроить код ниже, чтобы он соответствовал.

структура папок:

/theme-folder/functions.php 
/theme-folder/woocommerce/archive-list-view.php 

На template_include фильтре мы будем проверять, если мы на долговременном архиве для категории nussmylch продукции. Если это так, мы будем искать и поставлять новый шаблон. В противном случае используется стандартный шаблон.

EDIT: неправильная функция WooCommerce is_product_taxonomy(). is_product_category() необходим для проверки определенной категории.

add_filter('template_include', 'so_33615903_custom_category_template', 20); 

function so_33615903_custom_category_template($template) { 
    // check you are on the taxonomy archive for specific category 
    if (is_product_category('nussmylch') ) { 
     $new_template = locate_template(array('woocommerce/archive-list-view.php')); 
     if ('' != $new_template) { 
      $template = $new_template ; 
     } 
    } 

    return $template; 
} 

Working Example

+0

@robin Если мы обсудим этот ответ, давайте сделаем это здесь. Почему в этом есть одна из проблем? Но есть одна проблема. В моих параметрах темы вы можете выбрать, сколько продуктов вы хотите показывать на страницах категорий продуктов youre. У вас есть папка с темой, а затем папка, называемая функциями с файлом php называемой woocommerce ». Проблема? Кроме того, «не работает», я полагаю, вы имеете в виду, что при просмотре категории теста вы не получаете другой шаблон? – helgatheviking

+0

Вышеприведенный код содержится в корневом файле 'functions.php' вашей темы. Хотя, возможно, это не должно иметь значения. Вы создали шаблон 'woocommerce/archive-list-view.php'? Если код не может найти шаблон, он будет использовать значение по умолчанию. У вас есть правильная категория slug? – helgatheviking

+0

См. Мои правки. – helgatheviking