Функция Wordpress ajax запускается на внешнем интерфейсе, когда она не вызываетсяPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Функция Wordpress ajax запускается на внешнем интерфейсе, когда она не вызывается

Сообщение Anonymous »

У меня есть страница, на которой отображается архив сообщений произвольного типа и поле поиска в реальном времени. Страница должна загрузиться с набором результатов по умолчанию, затем при нажатии клавиши в поле поиска результаты будут отфильтрованы на основе заголовка сообщения, а если поле очищено, просто отобразите все, как при первоначальной загрузке страницы.
Все работает так, как ожидалось, однако при загрузке страницы примерно через 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»