#wordpress #query-variables
#wordpress #запрос-переменные
Вопрос:
В моем пользовательском типе сообщения я хочу фильтровать в зависимости от параметров в URL. Например ?car=yellowamp;foo=1
, обратитесь к ключу и значению мета-запроса. Ключ и значение являются дополнительными полями. Что делает его еще более сложным, так это то, что
Вот как сейчас выглядит мой цикл:
$args = array(
'post_type'=>'glas', // Your post type name
'posts_per_page' => 9,
'paged' => $paged,
);
$loop = new WP_Query( $args ); ?>
<?php if($loop->have_posts()): ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php echo get_field('type_glas'); ?> <?php echo get_field('uitvoering_glas'); ?><br>
<?php endwhile; ?>
<?php $total_pages = $loop->max_num_pages; ?>
<?php if ($total_pages > 1) : ?>
<?php
$current_page = max(1, get_query_var('paged'));
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => '/page/%#%',
'current' => $current_page,
'total' => $total_pages,
'prev_text' => __('« prev'),
'next_text' => __('next »'),
));
?>
<?php endif; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
Комментарии:
1. У меня нет времени на написание полного примера, но в основном вам нужно зарегистрировать переменные вашего запроса (car, foo), а затем добавить дополнительные аргументы в ваш массив $args с помощью meta_query. Например, if(isset(get_query_var(‘car’)) … по сути, это предложение начать поиск в Google. то, что вы ищете, не сложно сказать.
2. Нетрудно добавить « ‘meta_query’ => array( ‘relation’ => ‘AND’, array( ‘key’ => ‘foo’, ‘value’ => ‘bar’, ‘compare’ => ‘=’ ), array( ‘key’ => ‘foo’, ‘value’ => ‘bar’, ‘compare’ => ‘=’), array( ‘key’ => ‘x’, ‘value’ => ‘y’, ‘сравнить’ => ‘=’ ), ) « К WP_Query, чтобы получить результат. Но я хочу сделать это в зависимости от запроса в URL. При необходимости я также хочу добавить другое сравнение ключей и значений
3. Поискал в Google регистр переменных запросов. Я думаю, что это поможет мне в пути
4. Да, поэтому вы вводите условное значение — if isset query var, $args[‘meta_query’] = array() … вы вводите его после объявления аргументов точно так, как они у вас есть сейчас. Вы всегда можете добавить отдельные элементы в массив аргументов на основе условий. Просто введите их перед запуском wp_query, и это должно сработать
5. Я нашел ответ здесь , спасибо @kai