Неустранимая ошибка при получении результатов с использованием jQuery и Wordpress - PullRequest
2 голосов
/ 18 апреля 2011

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

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

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

Это мой jQuery

<script language="JavaScript">
$(function() {
    var SANAjax = function(){
        $('#reservationdetails').empty().addClass('loading')
          .load('wp-content/themes/theme/reloadhomeposts.php', function() {
             $(this).removeClass('loading') 
          });
    }
    setInterval(SANAjax, 15000 );
});
</script>
<div id="reservationdetails"></div>

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

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

Ответы [ 3 ]

1 голос
/ 18 апреля 2011

С вами все будет в порядке (о функциональности WP, которую вам не хватает), если вы добавите это в файл reloadhomeposts.php перед вызовом любой функции WP:

require('../../../wp-blog-header.php');
// ... WP_Query call and loop
0 голосов
/ 18 апреля 2011

Ваш AJAX может вызвать /wp-admin/admin-ajax.php с параметром действия (и всем, что вы хотите), затем в файле плагина вы можете связать свой вызов ajax с:

add_action('wp_ajax_YOUR_ACTION_NAME', 'the_function_to_call');
add_action('wp_ajax_no_priv_YOUR_ACTION_NAME', 'the_function_to_call');

YOUR_ACTION_NAME должно быть значением параметра action.Первый, это публичный ajax-запрос, означает, что вы можете вызывать его, даже если вы не вошли в систему. Второй, если вы вошли в систему.

Тогда функция the_function_to_call может включать в себя все, что будет работать!

function the_function_to_call () {
    include (TEMPLATEPATH . '/reloadhomeposts.php');
    die(); // prevent string 1 to appear after
}

Немного сложно, но вы используете внутренний процесс WP для AJAX.

0 голосов
/ 18 апреля 2011

Вы, вероятно, получаете эту ошибку, потому что вы вызываете файл темы напрямую

OR

потому что вы не используете верхний и нижний колонтитулы страницы.

Easy Solve:

Убедитесь, что страница загружается как хотелось. Если вы не хотите включать заголовок и весь этот мусор, вы можете загрузить фрагмент с помощью jQuery, выполнив что-то вроде этого:

  .load('wp-content/themes/theme/reloadhomeposts.php #postWrapper', function() {
             $(this).removeClass('loading') 
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...