WordPress – как я могу получить больше сообщений через AJAX?

Для начала, я думаю, что это длинный выстрел, но, надеюсь, есть кто-то, кто может помочь.

Чтобы объяснить текущую ситуацию, на данный момент у меня есть пользовательский плагин, который захватывает различные биты информации о пользователе и их 4 последних сообщениях.

Я также использую плагин WPBook (так это на facebook и просто обычный сайт WordPress)

Итак, вот мой код, который захватывает 4 последних сообщения для пользователя:

// The Query query_posts('posts_per_page=4&author='.$blogger_id); // set $more to 0 in order to only get the first part of the post global $more; $more = 0; // the Loop while (have_posts()) : the_post(); ?> <div class="oe-grid-box"> <a href="<?php the_permalink() ?>" <?php the_title()?></a> <div class="oe-grid-box-content"> <?php echo the_content( '...' ); ?> </div> <div class="oe-grid-pic"> <a href="<?php the_permalink() ?>"> <span class="<?php echo strtolower($category); ?>"></span> </a> <?php echo $image; ?> </div> </div> <?php endwhile; // Reset Query wp_reset_query(); ?> <div id="load-more">Load More</div> 

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

http://www.problogdesign.com/wordpress/load-next-wordpress-posts-with-ajax/

В идеале, хочу, чтобы я захотел, когда нажата кнопка загрузки больше, заберите еще 4 сообщения и покажите их.

Если бы кто-нибудь мог помочь, я бы очень признателен.

ОБНОВИТЬ

В порядке,

до сих пор я добавил в свой jQuery для вызова php-файла, который, надеюсь, вернет сообщения, но он не работает.

Я думаю, что это потому, что он не знает, что такое функции WordPress?

Если я добавлю простое echo в скрипт большей загрузки, функция успеха jQuery покажет предупреждение, чтобы сказать, что это сработало, но если я начну использовать материал WordPress, я получаю внутреннюю ошибку сервера, это код в файле load-more.php :

 // load wordpress into template $path = $_SERVER['DOCUMENT_ROOT']; define('WP_USE_THEMES', false); require($path .'/wp-load.php'); $blogger_id = $_GET['id']; $firstname = $_GET['firstname']; $surname = $_GET['surname']; $posts = $_GET['posts'] + 4; $category = $_GET['category']; $image = $_GET['image']; // The Query query_posts('paged='.get_query_var('paged').'&posts_per_page=' . $posts . '&author='.$blogger_id); // set $more to 0 in order to only get the first part of the post global $more; $more = 0; // then the same loop as in my page that is making the ajax call. 

После многих усилий я нашел ответ, вот решение для тех, кто застрял в том же положении.

Это происходит на вашей странице плагина, где вы получаете сообщения для пользователя и т. Д.

 <script type="text/javascript"> $(document).ready(function() { posts = 8; author_posts = parseInt(<?php echo $author_posts; ?>); $("#link_selector").click(function() { // alert('posts - ' + posts + 'author posts - ' + author_posts); if ((posts - author_posts) > 3) { $("#link_selector").text('No more posts!'); } else { var category = '<?php echo strtolower($category); ?>'; var id = '<?php echo $blogger_id; ?>'; var firstname = '<?php echo $firstname; ?>'; var surname = '<?php echo $surname; ?>'; // alert(posts + category + id + firstname + surname); $.ajax({ type: "GET", url: "/wordpress/wp-admin/admin-ajax.php", dataType: 'html', data: ({ action: 'loadMore', id: id, firstname: firstname, surname: surname, posts: posts, category: category}), success: function(data){ $('#ajax_results_container').hide().fadeIn('slow').html(data); posts = posts + 4; if ((posts - author_posts) > 3) { $("#link_selector").text('No more posts!'); } } }); } }); }); </script> 

Затем в функции functions.php вашей темы добавьте свою функцию для выполнения вашего запроса ajax:

 function loadMore() { $blogger_id = $_GET['id']; // get your $_GET variables sorted out // setup your query to get what you want query_posts('posts_per_page=' . $posts . '&author='.$blogger_id); // initialsise your output $output = ''; // the Loop while (have_posts()) : the_post(); // define the structure of your posts markup endwhile; // Reset Query wp_reset_query(); die($output); } 

Затем, сразу после закрытия вашей функции, поставьте в действие крючки

 add_action('wp_ajax_loadMore', 'loadMore'); add_action('wp_ajax_nopriv_loadMore', 'loadMore'); // not really needed 

Это оно!