Я начинающий разработчик, и это мои первые шаги в Wordpress.
Как я могу показать сообщения, которые содержат поисковый запрос по поисковому вводу в заголовке или содержании? Я не хочу использовать плагины или встроенный поиск Wordpress с его страницей перезагрузки.
Это мой код:
HTML
<form class="search__form" action="" method="POST">
<div class="search__input-container">
<input type="text" name="search" class="search__input search__input-js" placeholder="Search">
</div>
</form>
JavaScript
$('.search__input-js').on('change', function(){
var search = $('.search__input').val();
search = search.toLowerCase();
$.ajax({
type: 'POST',
url: ajax_options.admin_ajax_url,
data:{
search: search,
action: 'ajax_func'
},
success: function(result) {
$('.return-msg').html('');
$('.return-msg').html(result);
},
error: function(e) {
console.log(e);
}
});
});
functions.php
function ajax_func() {
wp_reset_postdata();
$search_term = '';
$result = '';
if(isset($_POST['search'])){
$search_term .= $_POST['search'];
}else{
$search_term = '';
}
$args= array(
'post_type' => array('post', 'case-study'),
'HERE'
);
$the_query_posts = new WP_Query( $args );
if ( $the_query_posts->have_posts() ) {
while ( $the_query_posts->have_posts() ) {
$the_query_posts->the_post();
$result .='
<div class="col-lg-4">';
$result .='
<a class="post__link" href="'.get_the_permalink().'">
<div class="post__container">';
if (has_post_thumbnail()) {
$result .= '
'.get_the_post_thumbnail(get_the_ID(), 'post-thumbnail', ['class' => 'post__img', 'alt' => get_the_title()]).'
';
} else {
$result .= '
<img class="img-responsive responsive--full post__img" src="" />
';
}
$result .='
<div class="post__background">
<p class="post__category">'.get_the_category(get_the_ID())[0]->name .'</p>';
$result .='<p class="post__name">'.get_the_title().'</p>';
$result .='<div class="post__desc">'.get_field('post_short_desc').'</div>';
$result .='
</div>
</div>
</a>
</div>';
}
wp_reset_postdata();
} else {
$result .= '<div class="col-12">0 posts</div>';
wp_reset_postdata();
}
echo $result;
die();
}
remove_filter( 'posts_where', 'cc_post_title_filter', 10, 2 );
add_action('wp_ajax_nopriv_ajax_func', 'ajax_func');
add_action('wp_ajax_ajax_func', 'ajax_func');
Ajax работает правильно, и я знаю, что должен написать какую-то функцию и настроить специальный запрос WP, чтобы найти свои посты, где я пишу «ЗДЕСЬ», но я не знаю как. Кто-нибудь может дать мне подсказку?