Внешний интерфейс WordPress Ajax с wp_localize_script Ошибка: ajaxurl не определен

Я пытаюсь создать маркеры на карте через ajax на тему wp.
После некоторой борьбы я обнаружил, что я не могу использовать любой php-файл для получения данных через ajax, я должен использовать файл admin-ajax.php.

По многим примерам это мой код

в functions.php

add_action( 'wp_enqueue_scripts', 'add_frontend_ajax_javascript_file' );
function add_frontend_ajax_javascript_file()
{
wp_localize_script( 'frontend_ajax', 'frontendajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
wp_enqueue_script( 'ajax_custom_script',  get_stylesheet_directory_uri() . '/includes/ajax-javascript.js', array('jquery') );

}

add_action( 'wp_ajax_get_post_information', 'get_post_information' );
add_action( 'wp_ajax_nopriv_get_post_information', 'get_post_information' );function get_post_information()
{

$get_this= $_GET['this'];
$get_that= $_GET['that'];

...my select...

echo json formatted data
}

Файл js загружен и работает, он выполняет другие действия перед вызовом ajax, где останавливается для ошибки в этой строке:

$.post({
url:frontendajax.ajaxurl,
{
action: 'get_post_information',
data: data
},
success: function(response) {

Но у меня всегда одна и та же ошибка:

Ссылочная ошибка: frontendajax.ajaxurl не определен

где моя ошибка?

PS: я использую get_stylesheet_directory_uri (), потому что я нахожусь в дочерней теме.

0

Решение

От wp_localize_script документы:

ВАЖНЫЙ! ДОЛЖЕН быть вызван wp_localize_script () после скрипт, к которому он подключен, был зарегистрирован с помощью wp_register_script () или wp_enqueue_script ().

И справиться должен быть таким же:

wp_enqueue_script( 'ajax_custom_script',  get_stylesheet_directory_uri() . '/includes/ajax-javascript.js', array('jquery') );
wp_localize_script( 'ajax_custom_script', 'frontendajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
4

Другие решения

Я пытаюсь создать маркеры на карте через ajax на тему wp. После некоторой борьбы я обнаружил, что я не могу использовать любой php-файл для получения данных через ajax, я должен использовать файл admin-ajax.php.

admin_url (‘admin-ajax.php’)
));
});
?>

0

По вопросам рекламы [email protected]