基于显示所有acf字段值的Ajax搜索字段的自定义查询

时间:2019-05-07 14:06:45

标签: php wordpress advanced-custom-fields

我有一个查询,可以查询到我想要的结果,但是当我尝试将其与“喜欢”进行比较时,它仍然会显示所有结果。

示例。我有ACF字段“ Test1”和“ Test2”。如果我在搜索字段中输入“ xfag”,则无论如何都会显示两个结果。

我已经尝试使用meta_query,但是它没有显示任何数据。

所以这是查询存在问题的查询

$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();
}

0 个答案:

没有答案