Пользовательские категории сортировки на домашней странице в теме Woocommerce 3 Storefront - PullRequest
0 голосов
/ 14 февраля 2019

enter image description here Я показываю список категорий на главной странице.Мне нужно, чтобы последняя категория была второй.Я изучил варианты сортировки, но они не подходят.По имени, по идентификатору, случайно. Категория с идентификатором "50" должна быть второй в списке.

add_filter( 'storefront_product_categories_args', 'custom_storefront_product_categories');
function custom_storefront_product_categories( $args ) {
    $args['limit'] = 9;
    $args['columns'] = 3;
    $args['orderby'] = 'id'; // sort by id category
    return $args;
}

РЕДАКТИРОВАТЬ:

Я пытался добавить отсортированные идентификаторы категорий продуктовиспользуя:

function custom_storefront_category_filtering( $args ) {
    $args['ids'] = '16,50,17,18,19,20,21,22,23'; // need such a sequence of categories
    return $args;
}
add_filter('storefront_product_categories_shortcode_args','custom_storefront_category_filtering' );

Но оно включает только категории товаров.

1 Ответ

0 голосов
/ 15 февраля 2019

Поскольку категории продуктов представляют собой пользовательские таксономии id, ids или даже ID не будут работать.Вместо этого вы будете использовать term_id, который является присвоенным значением аргумента для orderby аргумента в этом контексте.

Почему? потому что мы не нацелены на идентификаторы постов , а на термины идентификаторы .

Итак, в вашем фильтре хук:

add_filter( 'storefront_product_categories_args', 'custom_storefront_product_categories');
function custom_storefront_product_categories( $args ) {
    $args['limit'] = 9;
    $args['columns'] = 3;
    $args['orderby'] = 'term_id';

    return $args;
}

Код входит в файл function.phpвашей активной детской темы (или активной темы).Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...