Load related posts asynchronously
-
Hello,
thanks for a great plugin! I have manually installed it and got it running fine, however now I would like to load the related posts asynchronously when I reach the bottom of the page.
This is how I’m doing it: I’m using a custom loop so that it outputs custom HTML – the loop is in a separate theme file called related.php; in functions.php I created a function that calls the template part; finally, in the theme footer I make the Ajax call with jQuery. The problem I have is the result of the Ajax call seems to be undefined.
Here is some code, starting with the custom loop:
<?php if ( function_exists( 'get_crp_posts_id' ) ) { global $post; $scores = get_crp_posts_id( array( 'postid' => $post->ID, 'limit' => 4 ) ); $posts = wp_list_pluck( (array) $scores, 'ID' ); $args = array( 'post__in' => $posts, 'posts_per_page' => 4, 'ignore_sticky_posts' => 1 ); $my_query = new WP_Query( $args ); if ( $my_query->have_posts() ) { while ( $my_query->have_posts() ) { $my_query->the_post(); $thumbnail = wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); echo '<article class="pTeaser">'; echo the_post_thumbnail('full'); echo '<a class="pTeaserOverlay" href="' . get_permalink(get_the_ID()) . '"></a>'; echo '<header class="pTeaserTitle"><h2><a href="' . get_permalink(get_the_ID()) . '">' . get_the_title(get_the_ID()) . '</a></h2>'; echo '</header></article>'; wp_reset_postdata(); } } else { } wp_reset_query(); } ?>
The function in functions.php:
function related_posts() { get_template_part('related'); wp_die(); } add_action('wp_ajax_nopriv_related', 'related_posts'); add_action('wp_ajax_related', 'related_posts');
And the Ajax call:
if ($($(window).scrollTop() - $(document).scrollTop() == 0)) { $.ajax({ type: 'get', url: '<?php echo admin_url('admin-ajax.php');?>', data: { action: 'related' }, dataType: 'html', success: function(response) { alert(response); } }); }
Any help will be VERY appreciated!
- The topic ‘Load related posts asynchronously’ is closed to new replies.