Задать вопрос

Вывод постов в Wordpress?

Изучаю Wordpress и время пришло для форм типа фильтры.
У меня есть форма где необходимо выводить посты в зависимости от выбранных данных, а именно даты, цены и указанного времени.
Как в wordpress реализовать такое?
5f9161bf06bd8360559035.png
  • Вопрос задан
  • 195 просмотров
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@Bodrosh
Форма у вас уже есть визуальная, нужно сверстать и подвязывать её к Wordpress, т.е. при нажатии на кнопку отправляется форма - данные обрабатывает какой-то скрипт, в котором и идёт запрос в Б. напр., можно использовать WP_Query или get_posts(), в запросе уже передаются параметры формы. Ну и после запроса что-то можно делать с этими данными.
Ответ написан
Комментировать
@Dimas123
Вам нужно установить бесплатный плагин acf, в этом плагине создаёте нужные поля (цена, дата, длительность).
В каждом посте заполняете эти поля.

Смотрите документацию по фильтрации постов на основе этих полей https://www.advancedcustomfields.com/resources/que...

Попробуйте сначала без формы сделать страницу, на которой будут выводиться посты к примеру от 600 до 5000р, с помощью документации, которую я выше дал. Когда всё будет получаться. Переходите к этапу замены 600 и 5000 на переменные, которые вы должны получать методом POST или GET от вашей формы. Когда всё будет получаться добавьте фильтрацию не только по цене, а по всем полям.

Прикинул всё же код скрипта на всякий случай, возможны ошибки
<?php 

// args
$args = array(
	'numberposts'	=> -1,
	'post_type'		=> 'post',
	'meta_query'	=> array(
		'relation'		=> 'AND',
		array(
			'key'		=> 'data_book', // так вы назвали поле Даты в плагине acf
			'value'		=> '2020.11.10', // такой формат даты в том же плагине выбран Y.m.d  это я пишу по памяти смотрите сами точно
			'compare'	=> '='
		),
		array(
			'key'		=> 'price',  // так вы назвали поле Цены в плагине acf
			'value'		=> 5000,
			'type'		=> 'NUMERIC',
			'compare'	=> '<'
		)
	)
);


// query
$the_query = new WP_Query( $args );

?>
<?php if( $the_query->have_posts() ): ?>
	<ul>
	<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
		<li>
			<a href="<?php the_permalink(); ?>">
				<img src="<?php the_field('event_thumbnail'); ?>" />
				<?php the_title(); ?>
				<?php echo get_field('data_book').'<br>';
					echo get_field('price').'<br>';
				?>	
			</a>
		</li>
	<?php endwhile; ?>
	</ul>
<?php endif; ?>

<?php wp_reset_query();	 // Restore global post data stomped by the_post(). ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы