В моем плагине WordPress мне нужно иметь опцию JSON для загрузки, используя jquery, информацию о пользовательском типе поста.Этот вызов jquery придет на страницу, где его должны видеть все пользователи.
насколько я понимаю из кодекса У меня должна быть функция:
function my_json_returning_function(){
// get json objects here
echo $json;
die();
}
А также действия:
add_action('wp_ajax_my_json_action', 'my_json_returning_function');
add_action('wp_ajax_nopriv_my_json_action', 'my_json_returning_function');
Все в моем файле плагина.
тогда что-то вроде:
jQuery(document).ready(function($) {
var data = {
action: 'my_json_action',
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(<?php echo admin_url('admin-ajax.php');?>, data, function(response) {
alert('Got this from the server: ' + response);
});
});
должно вызывать данную функцию.
Мой реальный вопрос в том, куда мне поместить все разные части - и если что-то не хватает.
Функция php и ловушки действий попадают в файл плагина.Но javascript, который меня больше смущает.Я хочу поместить его в файл плагина javascript, но так как мне нужно получить URL-адрес администратора, используя php, это становится проблемой.
Кроме того, как мне убедиться, что скрипт вызывается только на определенной странице?Есть ли еще крючки и фильтры, с которыми мне должно быть удобно?Или возможно загрузить его с помощью wp_enqueue_script при выполнении шорткода на этой странице, или это слишком поздно, как мне кажется, его нужно загрузить в заголовок.
Много вопросов, но я надеюсь, что вы понимаете суть моей проблемы - мне трудно разместить код в нужных местах в структуре wordpress.
РЕДАКТИРОВАТЬ: Вызов echo admin_url ('admin-ajax.php');По крайней мере, на мой взгляд, это не самый элегантный способ сделать это.Я предпочел бы иметь json API с отдельным URL и вызывать его в вызове ajax.Как мне настроить страницу в WordPress, которая возвращает только объект json?