Не могу добавить к значению $ args $ _GET условно - WordPress - PullRequest
0 голосов
/ 13 мая 2018

В WordPress у меня есть цикл с некоторым массивом $ args, который я хочу иметь возможность условно редактировать в зависимости от значения $ _GET.

$args = array(
  'post_type'       => 'property',
  'post_status'     => 'publish',
  'posts_per_page'  => -1,
  'meta_query'      => $meta_query,
  'tax_query'       => $tax_query,
  'fields'          => 'ids',
  'no_found_rows'   => true,
  'post__in'        => $post__in,
  'nopaging'        => true
);

При добавлении в массив $ args вот так:

if ( $_GET['prop_sort'] == 'price' ) {
  $args['orderby']  = 'meta_value_num';
  $args['order']    = 'ASC';
  $args['meta_key'] = $prefix . 'price';
}

Ничего не меняется, а добавленные в $ args вещи игнорируются.Однако когда я добавляю код, подобный следующему:

args = array(
  'post_type'       => 'property',
  'post_status'     => 'publish',
  'posts_per_page'  => -1,
  'meta_query'      => $meta_query,
  'tax_query'       => $tax_query,
  'fields'          => 'ids',
  'no_found_rows'   => true,
  'post__in'        => $post__in,
  'nopaging'        => true
);

$args['orderby']  = 'meta_value_num';
$args['order']    = 'ASC';
$args['meta_key'] = $prefix . 'price';

Все работает, как задумано, и сообщения сортируются по цене от маленькой до большой.В чем может быть проблема?

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

Попытка повлиять на запрос следующим образом:

function myplugin_pre_get_posts( $query ) {

  if ( ! is_admin() && $query->is_main_query() && $query->query_vars['post_type'] == 'property' ) {
      $query->set( 'orderby', 'meta_value_num' );
      $query->set( 'order', 'ASC' );
      $query->set( 'meta_key', 'sb_price' );
  }

  return $query;
}
add_action( 'pre_get_posts', 'myplugin_pre_get_posts', 1 );

Также не работает (неопределенный индекс: post_type in .. \functions.php в строке 65).

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