Загрузите дополнительные сообщения (Ajax) в боковую панель с вкладками на single.php

Я пытаюсь использовать этот подход https://wordpress.stackexchange.com/a/56349/18144, чтобы создать кнопку «загрузить больше» на боковой панели на single.php. Я хотел бы иметь возможность загружать больше сообщений на вкладке боковой панели после нажатия кнопки «Загрузить больше».

Я что-то упускаю, так как это не работает. Но в консоли нет ошибок, поэтому я не знаю, с чего начать.

Боковая панель на single.php имеет следующую (упрощенную) структуру:

<aside id="sidemenu-container"> <div id="side-top">....</div> <div id="side-tabs"> <div class="tab_container"> <div id="new" class="tab_content"> <li>...</li> </div> <div id="must-see" class="tab_content"> <li>...</li> </div> </div> <div id="side-bottom"> <li>Up | My Fav's |<a id="#blog-more" href="#" class="button radius">Load More</a></li> </div> </div> </aside> 

Что у меня до сих пор:

В functions.php я добавил:

 add_action( 'wp_enqueue_scripts', 'wpa56343_scripts', 100 ); function wpa56343_scripts() { wp_enqueue_script( 'wpa56343_script', get_template_directory_uri() . '/js/ajaxscripts.js?ver=1.0', array( 'jquery' ), null, false ); wp_localize_script( 'wpa56343_script', 'WPaAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); } add_action('wp_ajax_wpa56343_more', 'wpa56343_more'); add_action('wp_ajax_nopriv_wpa56343_more', 'wpa56343_more'); function wpa56343_more(){ global $wp_query; $offset = $_POST['postoffset']; $args = array( 'offset' => $offset, 'posts_per_page' => 10 ); $wp_query = new WP_Query( $args ); get_template_part( 'includes/ajaxsidebar'); exit; } 

ajaxscripts.js содержит:

 jQuery(document).ready(function($){ $('#blog-more').click(function(e){ // <- added e.preventDefault(); // <- added to prevent normal form submission var postoffset = 5; $.get( WPaAjax.ajaxurl, { action : 'wpa56343_more', postoffset : postoffset }, function( response ) { $('#new').append( response ); } ); }); }); 

Шаблонная часть ajaxsidebar содержит:

 <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail() ?><?php the_title(); ?></a></li> <?php endwhile; ?> <?php endif; ?> 

Solutions Collecting From Web of "Загрузите дополнительные сообщения (Ajax) в боковую панель с вкладками на single.php"

Для тех, кто сталкивается с этим, как я это делал через Googlez, я пытался загрузить новые статьи на дне страницы single.php (бесконечный прокрутки).

Я обнаружил, что добавив приращение к значению «offset», а затем используя $ .post () вместо $ .get (), я смог это сделать.

Следуя приведенному выше коду (и последующему изменению), я оттащил его так, используя базовую пост-реализацию (только название), которую я исправлю позже:

в functions.php:

 add_action( 'wp_enqueue_scripts', 'wpa56343_scripts', 100 ); function wpa56343_scripts() { wp_enqueue_script( 'wpa56343_script', get_template_directory_uri() . '/javascripts/ajaxscripts.js?ver=1.0', array( 'jquery' ), null, false ); wp_localize_script( 'wpa56343_script', 'WPaAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); } add_action('wp_ajax_wpa56343_more', 'wpa56343_more'); add_action('wp_ajax_nopriv_wpa56343_more', 'wpa56343_more'); function wpa56343_more(){ global $wp_query; $offset = $_POST['postoffset']; $args = array( 'offset' => $offset, 'posts_per_page' => 1 ); $wp_query = new WP_Query( $args ); get_template_part( 'recent-posts'); exit; } 

в ajaxscripts.js

 jQuery(document).ready(function($){ var postoffset = 0; $('#blog-more').click(function(e){ // <- added e.preventDefault(); // <- added to prevent normal form submission postoffset = postoffset + 1; $.post( WPaAjax.ajaxurl, { action : 'wpa56343_more', postoffset : postoffset, }, function( response ) { //alert(response); $('#new').append( response ); } ); }); }); 

in recentposts.php

 <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <a href="<?php the_permalink() ?>" rel="bookmark"><?php //the_post_thumbnail() ?><?php the_title(); ?></a><br> <?php endwhile; ?> <?php endif; ?> 

Я изменю «onclick» на «когда вы достигнете верхней части страницы, но с тяжелой частью, это игра ребенка.

Благодаря оригинальному плакату для его работы и комментаторам за их.