Включение расширенных настраиваемых полей (ACF) в пользовательский поиск - Wordpress

Я создал / объединил классный поиск по указанной категории для своего блога. Использование Ajax для загрузки результатов без перезагрузки.

Когда я ищу - независимо от того, какой термин я ищу. Я получаю все сообщения.

Я использую ACF для содержания и автора. Я также ссылаюсь на продукты, используя поле Feature_product_title. Эти поля используются на моей странице следующим образом:

<?php if ( have_rows('case_study_page_content') ): ?>
    <?php
        while (have_rows('case_study_page_content')): the_row();
        $title = get_sub_field('title');
        $author = get_sub_field('author');
        $content = get_sub_field('content');
    ?>
        <div class="">
            <h1 class=""><?php echo $title; ?></h3>
            <h3 class=""><?php echo $author; ?></h4>
            <p><?php echo $content; ?></p>
        </div>
    <?php endwhile; ?>
<?php endif; ?>


<?php
    while (have_rows('featured_products')): the_row();
    $featured_product_title = get_sub_field('featured_product_title', 'featured_products');
?>

Имея это в виду, мой текущий поиск выглядит так (functions.php):

// CASE STUDY SEARCH 
function my_search(){
    $args = array(
        'orderby' => 'date',
        'order' => $_POST['date']
    );

    if( isset( $_POST['s'] ) ):
/*
        $args = array(
            'post_type' => 'post',
            'posts_per_page' => -1,
            's' => $_POST['s']
        );
*/

        if( have_rows('case_study_page_content') ):

            while( have_rows('case_study_page_content') ) : the_row();

                $title = get_sub_field('title');
                $author = get_sub_field('author');
                $content = get_sub_field('content');

                    $args = array(
                        'post_type' => 'post',
                        'posts_per_page' => -1,
                        'meta_query'    => array(
                            'relation'      => 'OR',
                            array(
                                'key'       => $title,
                                'compare'   => 'like',
                                'value'     => '%'.$_POST['s'].'%',
                            ),
                            array(
                                'key'       => $author,
                                'compare'   => 'like',
                                'value'     => '%'.$_POST['s'].'%',
                            ),
                            array(
                                'key'       => $content,
                                'compare'   => 'like',
                                'value'     => '%'.$_POST['s'].'%',
                            )
                        )
                    );

            endwhile;

        endif;

        $query = new WP_Query($args);

        if( $query->have_posts() ):

            while( $query->have_posts() ):
                $query->the_post();

                echo "<article class=\"post-box " . get_post_class() . "\">";

                    echo "<a href=\"" . get_the_permalink() . "\" class=\"box-link\"></a>";

                    $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID), 'thumbnail' );
                    echo "<img src=\"" . $url . "\" />";

                    echo "<h2>" . get_the_title() . "</h2>";

                    $case_study = get_field('case_study_page_content');

                    if( $case_study ):

                        while( have_rows('case_study_page_content') ): the_row();
                            $case_study_author = get_sub_field('author');

                            echo "<p>" . $case_study_author . "</p>";
                        endwhile;
                    endif;

                echo "</article>";


            endwhile;
            wp_reset_postdata();

        else :

            echo 'No case studies found';

        endif;

    die();

    endif;
}

add_action('wp_ajax_customsearch', 'my_search');
add_action('wp_ajax_nopriv_customsearch', 'my_search');

Думаю, мой вопрос в том, как мне добавить ACF в массив $ args ...?

Может ли кто-нибудь помочь мне успешно сравнить «ключ» со «значением» в моем WP_Query ($ args)?

Спасибо всем, Джейсон.


person Jason Is My Name    schedule 07.11.2018    source источник


Ответы (1)


проверить это, но без убеждения

// args
$args = array(
    'numberposts'   => -1,
    'post_type'     => 'post',
    'meta_query'    => array(
        'relation'      => 'OR',
        array(
            'key'       => 'case_study_page_content_title',
            'compare'   => 'like',
            'value'     => '%'.$_POST['s'].'',
        ),
        array(
            'key'       => 'case_study_page_content_author',
            'compare'   => 'like',
            'value'     => '%'.$_POST['s'].'%',
        ),
        array(
            'key'       => 'case_study_page_content_content',
            'compare'   => 'like',
            'value'     => '%'.$_POST['s'].'%',
        )
    )
);
person Sco    schedule 07.11.2018