对此很陌生,希望有人能帮帮我!
我已经建立了一个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');