Использование pre_get_posts для редактирования магазина WooCommerce l oop, влияющего на параметры ACF - PullRequest
1 голос
/ 15 марта 2020

В настоящее время на моей странице магазина WooCommerce все поля опций ACF не отображаются, хотя и отображаются на других страницах. Это включает в себя Lo go, нижний колонтитул wp_menu и некоторые другие дополнительные настраиваемые поля. Для справки см. Следующие снимки экрана:

Нижний колонтитул на всех других страницах: ibb.co/4R79mRZ
Нижний колонтитул на страницах WooCommerce (магазин): ibb.co/88sjgSd
Верхний колонтитул на всех другие страницы: ibb.co/vwzPs6w
Заголовок на страницах WooCommerce (магазин): ibb.co/9NJ0y2v

Я обнаружил проблему в моих функциях. * файл 1033 *, при использовании pre_get_posts для редактирования магазина WooCommerce l oop на основе параметров в строке запроса.

Когда я удаляю этот код, возникает проблема:

add_action('pre_get_posts', 'filter_pre_get_posts' );
function filter_pre_get_posts( $wp_query ) {
  if(is_shop()){
    if(isset($_GET['brand'])) {
      $filter_term = $_GET['brand'];
    }
    if(isset($_GET['cat'])) {
      $filter_term = $_GET['cat'];
    }
    if(isset($_GET['type'])) {
      $type = $_GET['type'];
    }
    if(isset($_GET['priceone'])) {
      $price = $_GET['priceone'];
    }
    if(isset($_GET['pricetwo'])) {
      $price = $_GET['pricetwo'];
    }
    if ($filter_term && !$type && !$price) {
      echo "hi";
      $wp_query->set('tax_query', array(
         'relation' => 'OR',
        array(
          'taxonomy' => 'pa_branding',
          'field' => 'slug',
          'terms' => $filter_term ,
          'include_children' => true,
        ),
        array(
          'taxonomy' => 'product_cat',
          'field' => 'slug',
          'terms' => $filter_term ,
          'include_children' => true,
        ),
        array(
          'taxonomy' => 'product_tag',
          'field' => 'slug',
          'terms' => $filter_term , 
          'include_children' => true,
        )
      ));
    }
  }
}

Интересно, когда я эхо 'hi' в условных выражениях этого кода на входном экране отображаются следующие символы:
Обратите внимание на эхо-сигнал hi в верхнем левом углу: https://ibb.co/3dPg4d9
Обратите внимание на echo'd "hi" в нескольких местах в нижнем колонтитуле: https://ibb.co/Zfh8rJg

Эхо-сигналы отображаются во всех местах, где сайт не выполняет ни один из вариантов ACF поля, или wp_menu.

Я предполагаю, что это что-то делать с Это глобальное число, но я действительно не знаю.

Любая помощь будет оценена.

Спасибо.

1 Ответ

0 голосов
/ 15 марта 2020

ответил:

Использовал woocommerce_product_query вместо pre_get_posts.

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