it-swarm.com.ru

Не можете получить доступ к функциям WordPress в файле, вызываемом через Ajax?

Я пытаюсь перезагрузить свежие сообщения, используя jQuery. Насколько я знаю, я не могу перезагрузить содержимое div внутри страницы, поэтому я загружаю файл в этот div.

Проблема в том, что мой загруженный файл выдает мне фатальную ошибку: вызов неопределенной функции wp_query ()

Как я могу реализовать функции для вновь созданного файла в каталоге темы для правильной работы?

Это мой JQuery

<script language="JavaScript">
$(function() {
    var SANAjax = function(){

    }
    setInterval(SANAjax, 15000 );
});
</script>

И это то, что у меня есть в reloadhomeposts.php (хотя я удалил содержимое)

<?php $recent = new WP_Query("cat=3,4,5&showposts=10"); while($recent->have_posts()) : $recent->the_post();?>
.
.
.
<?php endwhile; ?>
2
EnexoOnoma

Причиной этой ошибки является то, что вы загружаете файл без загрузки в систему WordPress и, следовательно, wp_query () не существует.

Быстрое решение заключается в:

include("../../../wp-load.php"); <- угадывание местоположения файла WordPress.

в верхней части файла php.

1
Brady

Правильный способ справиться с этим - использовать файл WP admin-ajax.php вместо собственного. Смотрите эту страницу Кодекса:

http://codex.wordpress.org/AJAX_in_Plugins#Ajax_on_the_Viewer-Facing_Side

Вместо того, чтобы помещать код в плагин, просто поместите его в свой файл functions.php.

1
scribu