Пользовательский запрос на основе поля поиска Ajax, показывающий все значения поля acf - PullRequest
0 голосов
/ 07 мая 2019

У меня есть запрос, который дает результаты, которые я хочу, но когда я пытаюсь сравнить его с «LIKE», он все равно показывает все результаты.

Пример.У меня есть поля ACF «Test1» и «Test2».Если я введу «xfag» в поле поиска, оба результата появятся в любом случае.

Я уже пытался использовать meta_query, но тогда он не показал никаких данных.

Так что это запрос imвозникли проблемы с:

$args = array(
    'post_type' => 'page',
    'posts_per_page' => -1,
    array(
      'key'     => 'nimi',
      'value'   => $_POST['keyword'],
      'compare' => 'LIKE',
    )
  );

Весь код:

add_action('wp_footer', 'ajax_fetch');
function ajax_fetch()
{ ?>

  <script type="text/javascript">
    function fetch() {

      jQuery.ajax({
        url: '<?php echo admin_url('admin-ajax.php'); ?>',
        type: 'post',
        data: {
          action: 'data_fetch',
          keyword: jQuery('#keyword').val()
        },
        success: function(data) {
          jQuery('#datafetch').html(data);
        }
      });

    }
  </script>
<?php
}

// the ajax function
add_action('wp_ajax_data_fetch', 'data_fetch');
add_action('wp_ajax_nopriv_data_fetch', 'data_fetch');

function data_fetch()
{
  if (esc_attr($_POST['keyword']) == null) {
    die();
  }

  $args = array(
    'post_type' => 'page',
    'posts_per_page' => -1,
    array(
      'key'     => 'nimi',
      'value'   => $_POST['keyword'],
      'compare' => 'LIKE',
    )
  );
  $the_query = new WP_Query($args);

  if ($the_query->have_posts()) :
    while ($the_query->have_posts()) : $the_query->the_post(); ?>

      <?php if (have_rows('tuotteet')) : ?>

        <?php while (have_rows('tuotteet')) : the_row(); ?>

          <?php if (have_rows('alatuotteet')) : ?>

            <?php while (have_rows('alatuotteet')) : the_row(); ?>

              <?php
              $name = get_sub_field('nimi');
              echo $name; ?>

            <?php endwhile;
        endif; ?>
        <?php endwhile;
    endif; ?>

    <?php endwhile;
  wp_reset_postdata();
endif;

die();
}
...