Как правильно загрузить wordpress в не WP скрипт для AJAX запроса


Мне нужен сценарий в моей теме, ajax.php, который я хочу загрузить или получить доступ с других интерфейсных страниц с помощью ajax.

В ajax.php Мне нужен доступ к основным функциям WP, таким как get_posts(), do_shortcode() и т. Д. Т.Е. Мне нужен WordPress, загруженный в скрипт.

Традиционно я настраиваю страницу в администраторе и даю ей пользовательский шаблон, чтобы затем для моих запросов ajax я мог отправлять на www.site.com/ajax и пользовательский шаблон обрабатывает запрос. Пока это работает нормально Я почти уверен, что это не самый эффективный или безопасный способ обработки ajax на интерфейсе WP, но не уверен, как это сделать правильно.

Спасибо.

Author: patnz, 2011-11-03

2 answers

На самом деле это вообще не лучшая практика делать это таким образом. На самом деле вам не нужно создавать ajax.php файл, если только вы не собираетесь просто включить его в свой functions.php файл. Вам нужно прочитать об AJAX в WordPress. Вы бы просто добавили действие в "wp_ajax_name_of_action" и просто указали действие в функции javascript ajax.

Простой пример из кодека WordPress:

<?php
add_action('admin_head', 'my_action_javascript');

function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {

var data = {
    action: 'my_action',
    whatever: 1234
};

// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
    alert('Got this from the server: ' + response);
});
});
</script>
<?php
}
add_action('wp_ajax_my_action', 'my_action_callback');

function my_action_callback() {
global $wpdb; // this is how you get access to the database

$whatever = intval( $_POST['whatever'] );

$whatever += 10;

    echo $whatever;

die(); // this is required to return a proper result
} 
 5
Author: Kevin Langley Jr., 2011-11-03 22:03:45

Смотрите страницу кодекса о том, как правильно использовать AJAX в плагинах . Те же действия будут работать в теме functions.php также.

Также смотрите это сообщение в блоге, связанное с приведенной выше страницей кодекса, для получения дополнительных примеров кода.

 2
Author: Milo, 2011-11-03 20:41:12