Хотя идея уже проиллюстрирована Рафаэль в своем ответе, я вмешиваюсь, чтобы добавить некоторые детали
Лучший способ использования AJAX с Wordpress - использовать его встроенный способ его обработки, а также путем отправки запросов на wp-admin/admin-ajax.php
(я знаю, что часть «admin» в имени файла немного вводит в заблуждение. но все запросы в интерфейсе (сторона просмотра), а также администратор могут обрабатываться в admin-ajax.php
с большим количеством преимуществ, особенно для обеспечения безопасности. А для серверного кода php, который будет выполнен, он должен быть помещен в functions.php
.
Ваш код JQuery будет выглядеть примерно так:
$(document).ready(function() {
$('.tabs a').click(function(e) {
e.preventDefault();
var tab_id = $(this).attr('id');
$.ajax({
type: "GET",
url: "wp-admin/admin-ajax.php",
dataType: 'html',
data: ({ action: 'yourFunction', id: tab_id}),
success: function(data){
$('#tab'+tab_id).html(data);
},
error: function(data)
{
alert("Error!");
return false;
}
});
});
});
в functions.php
вашей темы (или непосредственно в файле плагина), добавьте:
add_action('wp_ajax_yourFunction', 'yourFunction');
add_action('wp_ajax_nopriv_yourFunction', 'yourFunction');
и определить в том же файле yourFunction
обратного вызова функционируют следующим образом:
function yourFunction() {
// get id
// your php code
die();
}
Для j avascript, посмотрите на ajax() и его стенографию get(). А для лучших практик использования AJAX с Wordpress в Интернете есть много учебников (я вернусь, чтобы дать один). Успехов
Edit:
Как упоминалось Карлом, вы можете использовать .load()
вместо ajax()
, Следует отметить, что .load()
является просто оболочкой для $.ajax()
. Он добавляет функции, которые позволяют определить, где в документе должны быть вставлены возвращаемые данные. Поэтому действительно можно использовать только тогда, когда вызов приведет только к HTML. Он называется несколько иначе, чем другой, поскольку это метод, связанный с конкретным элементом DOM, обернутым jQuery. Таким образом, можно было бы: $('#divWantingContent').load(...)
, который внутренне звонит .ajax()
.
Но мой первоначальный ответ о том, как организовать php-код в отношении Wordpress best practices.
jQuery AJAX: http://api.jquery.com/jquery.ajax/ – mjohns