Все работает так, как ожидалось, однако при загрузке страницы примерно через 4–5 секунд результаты загружаются снова без какого-либо взаимодействия со страницей.
Кроме того, если при нажатии на сообщение появляется внешняя ссылка, по которой результаты перезагружаются. Этого не произойдет, если сообщение ссылается на внутреннюю страницу.
Я также пробовал использовать поле поиска, а затем щелкнуть по результату, и результаты поиска сохраняются, но снова перезагружаются.
Я вызываю функцию только в одном месте, в поле ввода, используя onkeyup="fetch()", поэтому понятия не имею, почему она просто выполняется свой собственный. Он делает это только один раз, и я не уверен, откуда взялась задержка в 4-5 секунд.
Вот что у меня есть в файле function.php:
Код: Выделить всё
add_action('wp_ajax_data_fetch', 'data_fetch');
add_action('wp_ajax_nopriv_data_fetch', 'data_fetch');
function data_fetch(){
remove_all_filters('posts_orderby');
$the_query = new WP_Query(
array(
'post_type' => 'games',
'post_title_like' => esc_attr( $_POST['keyword'] ),
'orderby' => 'post_title',
'post_status' => 'publish',
'order' => 'ASC'
)
);
$the_query_empty = new WP_Query(
array(
'posts_per_page' => -1,
'post_type' => 'games',
'order' => 'ASC',
'post_status' => 'publish',
'orderby' => 'menu_order'
)
);
// if the user has typed, filter posts
if( $_POST['keyword'] != '' && $the_query->have_posts() ) :
while( $the_query->have_posts() ): $the_query->the_post();
$website = get_field('website');
if($website){
$url = $website;
}else{
$url = get_the_permalink();
}
?>
[url=" class="fadein">[/url]
[url=" class="fadein">[/url]
Подробнее здесь: [url]https://stackoverflow.com/questions/78674644/wordpress-ajax-function-runs-on-front-end-when-not-called[/url]
Мобильная версия