я пытаюсь построить форму на переднем конце, используя ACF;Я создал 2 настраиваемых поля, один выбор даты и одно выпадающее меню.Моя цель - дать пользователю возможность искать «действия» по «дате».Они выбирают активность, а затем дату, нажимают кнопку «Отправить» и перенаправляют их на страницу результатов с $ this action, равным $ this date.Вот код, который у меня есть, на данный момент: у меня есть форма на переднем крае, но когда я нажимаю на кнопку Отправить, я перенаправлен на страницу со всеми сообщениями, и очень длинный URL-адрес ... Мне нужна помощь в пониманиипроцесс ... и что я делаю не так ...
/*functions.php*/
function search_filter($query) {
if ( !is_admin() && $query->is_main_query() ) {
if ($query->is_search) {
$meta_query = array();
if( isset($_POST['mois']) && $_POST['mois'] ){
$meta_query = array(
array(
'key' => 'mois',
'value' => $_POST['mois'],
'compare' => '='
)
);
}
if( isset($_POST['themes']) && $_POST['themes'] ){
$meta_query = array(
array(
'key' => 'themes',
'value' => $_POST['themes'],
'compare' => '='
)
);
}
$query->set('meta_query', $meta_query);
}
}
}
add_action('pre_get_posts','search_filter');
На данный момент я решил поместить его в single.php, но это может быть где угодно
<?php
acf_form_head() ?>
<?php get_header(); ?>
<?php paris_post_thumbnail(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<?php
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', get_post_type() );
endwhile; // End of the loop.
;?>
<div class="form-multiple"><?php
get_template_part( 'template-parts/searchform','advanced');?>
</div></main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); get_footer();
Инаконец, я создаю свою собственную форму поиска, чтобы отобразить ее на внешнем интерфейсе в файле с именем advanced-searchform.php в шаблонах forlder;
<form method="GET" id="advanced-searchform" role="search" action="<?php echo
esc_url( home_url( '/' ) ); ?>">
<input type="hidden" name="s" value="">
<h3><?php _e( 'Advanced Search', 'paris' ); ?></h3>
<?php $settings = array( 'id' => 'acf-form',
'fields' => array('date','themes'),
'form' => true,
'return' => esc_url(add_query_arg( array( 'date' => '$_POST["date"]',
'themes' => '$_POST["themes"]'), home_url() )),
'submit_value' => __("Submit", 'acf'));
acf_form( $settings );?>
</form>