Предварительно я новичок в AJAX, но я думаю, что у моего кода нет проблем, поэтому я предполагаю, что WordPress вызывает мою неудачу.Я надеюсь получить ответ со страницы, вот моя упрощенная настройка.
У меня есть страница с идентификатором 999 с шаблоном shout.php
примерно так:
<?php
/*Template Name: PHP - Shout*/
echo "shout1";
if(is_user_logged_in()) echo " - shout2";
?>
Как и ожидалось, если я перейду к http://.../Page999
, он напечатает shout1
и если я вошел в систему shout1 - shout2
.
На моей странице запроса:
function button_post(){
var http = new XMLHttpRequest();
var url = '<?php echo get_permalink(999); ?>';
var params = ' ';
http.open('POST', url, true);
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
}
Iу меня есть скопированная версия shout.php
вне Wordpress, и кнопка реагирует на нее, как и ожидалось, но когда я использую страницу 999 (которая использует тот же файл, что и шаблон), это не работает.Я не знаю, почему WordPress «блокирует» каким-то образом ответ на мою функцию.
Это не обязательно должна быть та же самая настройка, но мне нужен файл, работающий внутри Wordpress, чтобы я мог использовать такие функции, как is_user_logged_in()
.
Насколько мне известно, это единственный способ заставить Wordpress интерпретировать внешнюю страницу: установить его в качестве шаблона и использовать на странице.Я не знаю, является ли это причиной проблемы.
Заранее благодарим вас:)