AJAX标签搜索:仅搜索和显示属于Wordpress页面的标签。没有帖子

时间:2018-07-27 15:00:10

标签: jquery wordpress search tags ajaxform

对此很陌生,希望有人能帮帮我!

我已经建立了一个AJAX调用,该调用从帖子和页面中收集所有标签,并以搜索模式显示它们。在“ Keyup”上,将调用AJAX提取功能,并搜索与我要搜索的内容匹配的标签。

目前正在发生的是AJAX功能正在从页面和帖子中提取所有标签。

我需要做的是让AJAX调用仅搜索与页面相关的标签。

有人可以看看我的代码,看看我在做什么错吗?

任何帮助将不胜感激!

以下内容位于我的 header.php 文件中。

<!-- The Modal -->
<div id="searchModal" class="searchModal">

  <!-- Modal content -->
  <div class="modal-content">

    <span id="searchClose" class="close"></span>
    <h3>Search</h3>

    <form role="search " method="get" class="search-form clearfix" action="<?php echo home_url( '/' ); ?>/tag/">

      <input type="search" class="search-input" placeholder="Type here" name="s" id="searchInput" onkeyup="fetch()"></input>

    </form> 

    <div class="search-results-container">
      <div class="search-results" id="datafetch"><span>Search results will appear here<span></div>
    </div>

  </div><!-- modalContent -->

</div><!-- searchModal -->


以下是我的 functions.php 文件中的内容。

/************************************************************/
/******** ADDING TAG SUPPORT & TAGE SEARCH SUPPORT *********/
/**********************************************************/

// adds tag support to pages
function tags_support_all() {
    register_taxonomy_for_object_type('post_tag', 'page');
}

// ensure all tags are included in queries
function tags_support_query($wp_query) {
    if ($wp_query->get('tag')) $wp_query->set('post_type', 'any');
}

// tag hooks
add_action('init', 'tags_support_all');
add_action('pre_get_posts', 'tags_support_query');

// add the ajax fetch js
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('#searchInput').val() 
        },

        success: function(data) {
            jQuery('#datafetch').html( data );
        }

    });

}
</script>

<?php
}


// SEARCHING SPECIFIC TAGS

function data_fetch( $query ) {

    $args = array( 
        'search' => esc_attr( $_POST['keyword'] )
    );

    $tags = get_tags( $args );

    if( $tags ) :

        foreach( $tags as $tag ) : ?>

            <a class="btn primary-blue" href="<?php echo get_tag_link($tag->term_id); ?>"><?php echo $tag->name; ?></a>

        <?php endforeach; 

       endif;

    die();
}

add_action('wp_ajax_data_fetch' , 'data_fetch');
add_action('wp_ajax_nopriv_data_fetch','data_fetch');

0 个答案:

没有答案