создание формы поиска с пользовательским полем acf - PullRequest
0 голосов
/ 24 января 2019

я пытаюсь построить форму на переднем конце, используя 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>
...