WordPress AJAX加载搜索结果的帖子

时间:2017-08-24 13:40:58

标签: jquery ajax wordpress

我正在尝试加载video format使用AJAX的所有帖子,但我的请求一直在死,我无法弄清楚原因。我没有得到任何错误。我总是得到status 200。我不能为我的生活弄明白而且我感觉它可能是非常小的东西。

这是我的表格:

<form role="search" method="get" id="searchform" action="//localhost:3000/">
        <div class="input-group">
        <input type="text" class="input-group-field" value="" name="s" id="s" placeholder="Start Your Search">
        <input type="hidden" name="hidden" value="video-gallery">
        <div class="input-group-button">
            <button type="submit" id="searchsubmit" class="button">
                <i class="fa fa-search" aria-hidden="true"></i>
            </button>
        </div>
    </div>
</form>

这是我的jQuery

function ajaxVideoSearch(){
    $(document).on('click','#searchsubmit',function(e){
        e.preventDefault();
        var $form    = $(this).parent().parent();
    var $input   = $form.find('input[name="s"]');
    var query    = $input.val();
    var $content = $('.gallery-container');

        $.ajax({
            url: templateURL + '/page-templates/ajax-search.php',
            type: 'POST',
            data: {query : query},
            beforeSend: function() {
        $content.addClass('loading');
      },
            success: function(response) {
        $content.html(response);
      }
        });
    });
}

以下是包含我的查询ajax-search.php

的网页
<?php if($_POST['query']) { ?>
<h1>Search Query: <?php echo $_POST['query']; ?></h1>
<?php } ?>
<div class="row medium-up-3">

    <!-- query video post format -->
    <?php
      $query  = $_POST['query'];

        $search = new WP_Query( array(
        's'         => $query,
        'tax_query' => array(
          array(                
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'terms' => array('post-format-video')
          )
        ),
        ));

      if($search->have_posts()) { while($search->have_posts()) { $search->the_post(); 
    ?>

    <div class="column column-block" title="Play Video" data-title="<?php the_title(); ?>" data-video="<?php the_field('video_link'); ?>">
        <a href="#!"><?php the_post_thumbnail(); ?></a>
        <h5 class="video-title white-heading"><?php the_title(); ?></h5>
        <p class="video-body white-p"><?php echo get_the_content(); ?></p>
    </div>

    <?php }

  }else{echo '<p>hello</p>';}

    ?>

</div>

这是我在回复中得到的。它似乎在第三行之后死亡。我明白了:

<h1>Search Query: clearplex</h1>
<div class="row medium-up-3">

    <!-- query video post format -->

1 个答案:

答案 0 :(得分:1)

好像你正在使用非WP文件。为了在没有WP模板层次结构中使用WP功能,您需要包含wordpress基本文件以使用WP_*函数。

尝试在 ajax-search.php

中添加两行
include_once $_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php';
header("HTTP/1.1 200 OK");

Ajax的search.php中

<?php 
include_once $_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php';
header("HTTP/1.1 200 OK");

if($_POST['query']) { ?>
<h1>Search Query: <?php echo $_POST['query']; ?></h1>
<?php } ?>