2017-02-06 4 views
1

У меня есть интернет-магазин, в котором отображаются все продукты на странице магазина.Custom post_per_page не работает в категориях в Wordpress и Woocommerce

Я использую следующий код в functions.php:

//EDIT POSTS PER PAGE IN SHOP 

add_filter('loop_shop_per_page', create_function('$cols', 'return -1;')); 

Когда я нахожусь в main shop page это работает без проблем.

Но когда я нахожусь в category page, предел, по-видимому, установлен в 100, и он показывает разбиение на страницы. Я не знаю, откуда он (в настройках/Чтение установлено 200) или как его изменить.

Как ни странно, если я использую фильтры AJAX на странице категории, когда я вернусь к отображению всех, он покажет все продукты без разбивки на страницы, но на странице перезагрузки он покажет разбиение на страницы.

Любые советы о том, как отображать все продукты и избавляться от разбиения на страницы непосредственно на загрузку страницы?

+0

Эй, Эрик, вы используете тему? Возможно ли, что в теме, относящейся к категориям, которые имеют приоритет над вашим пользовательским кодом, есть параметр? – tjfo

+0

Я использую тему, но создан мной ... Все очень странно, я бы понял, что в категориях будет отображаться столько сообщений, сколько установлено в настройках/чтении, игнорируя мои функции.php, но это не так, он просто показывает 100 ... –

ответ

2

Попробуйте под кодом, он удаляет разбивку на страницы, и вы также можете применить дополнительное условие внутри функции.

function no_nopaging($query) { 
    if ($query->is_archive()) { 
     $query->set('nopaging', 1); 
     } 
} 

add_action('parse_query', 'no_nopaging'); 
+0

Это точный код, который я уже пробовал ... –

+0

Почему вы используете return -1? сколько продуктов вы хотите отобразить? –

+0

Все! Я могу определить число (например, 500) или просто положить -1, и он отобразит все продукты. –

Смежные вопросы