Как исключить категорию продукта из выпадающего списка сгенерированной темой с помощью пользовательской функции? - PullRequest
0 голосов
/ 04 мая 2019

Я хотел бы удалить категорию «Без категории» из списка поиска (но я не хочу полностью ее удалять). Все продукты в нем скрыты, поэтому они не отображаются в результатах поиска, но я не хочу, чтобы категория отображалась в раскрывающемся списке поиска.

В пределах function shopstore_top_product_search У меня есть эта часть, которая генерирует список категорий продуктов для отображения:

<div class="search-categories">
            <div class="search-cat">
              <?php 
            $args = array(
            'taxonomy' => 'product_cat',
            'orderby' => 'name',
            'show_count' => '0',
            'pad_counts' => '0',
            'hierarchical' => '1',
            'title_li' => '',
            'hide_empty' => '0',

            );
            $all_categories = get_categories( $args );
             $selected = ( isset( $_GET['category'] ) && $_GET['category'] != "" ) ? sanitize_text_field( $_GET['category'] ) : '';
            ?>
              <select class="category-items" name="category">
                <option value="0">
                <?php esc_html_e('All Categories','shopstore') ?>
                </option>
                <?php foreach( $all_categories as $category ) { ?>
               <option  value="<?php echo esc_attr( $category->slug ); ?>" <?php echo ( $category->slug == $selected ) ? 'selected="selected"' : '';?> ><?php echo esc_html( $category->cat_name ); ?></option>
                <?php } ?>
              </select>
            </div>
          </div>

Чтобы не нужно было изменять файл и помещать копию в дочернюю тему, я подумал, что смогу добавить пользовательскую функцию к функциям своей дочерней темы (чтобы все было аккуратно) по следующим направлениям:

add_filter( 'shopstore_top_product_search_args', 'custom_shopstore_top_product_search_args' );
function custom_shopstore_top_product_search_args( $args ) {
  $args['exclude'] = get_option( 'default_product_cat' );
  return $args;
}

Возможно ли это сделать (вышеописанное не сработало)? Или мне нужно изменить параметры $args? Или лучше добавить / изменить оператор if, чтобы отфильтровать категорию из списка?

Кроме того, возможно ли переопределить 'hide_empty' => '0', чтобы оно было истинным, без изменения файла?

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