• Wonderful plugin, many thanks to the author.

    We’ve used the Better Related Posts plugin for several years but it is finally so out-dated that we are looking for new options.

    The very useful thing about Better Related Posts was that if you didn’t want to use the settings panel, you could make manual calls in the template files. Actually, you could have unlimited queries to display related posts for different post types or categories:

    if(function_exists('the_related_get_scores')) {
    $scores = the_related_get_scores(); // pass the post ID if outside of the loop
    $posts = array_slice(array_keys($scores), 0, 7); // how many results
    $args = array(
    'post__in' => $posts,
    'posts_per_page' => 7,
    'category_name' => 'news',
    'ignore_sticky_posts' => 1
    );

    We’ve seen that Contextual Related Posts also has a template option but does it support multiple arrays like above?

    <?php if(function_exists('echo_ald_crp')) echo_ald_crp(); ?>

    It would definitely be a valuable feature. Cheers!

    https://www.ads-software.com/plugins/contextual-related-posts/

Viewing 9 replies - 1 through 9 (of 9 total)
  • Plugin Author Ajay

    (@ajay)

    You can use

    <?php if(function_exists('get_crp_posts_id')) get_crp_posts_id( array( 'postid' => $postid, 'limit' => $limit ) ); ?>

    This will let you pull the post Id list and then you can use this just like the code above.

    Thread Starter littlebizzy

    (@littlebizzy)

    Your reply is much appreciated. The code below only displays a normal WordPress query of recent posts, but does not show related posts:

    if(function_exists('get_crp_posts_id')) {
    $scores = get_crp_posts_id(array('postid' => $postid, 'limit' => $limit));
    $posts = array_slice(array_keys($scores), 0, 7);
    $args = array(
    'post__in' => $posts,
    'posts_per_page' => 7,
    'category_name' => 'news',
    'ignore_sticky_posts' => 1
    );
    $my_query = new WP_Query($args);
    if ($my_query->have_posts()) {
    while ($my_query->have_posts()) {
    $my_query->the_post();
    echo '<a href="' .  get_permalink( get_the_ID() ) . '">';
    the_title();
    echo '</a>';
    wp_reset_postdata();
    wp_reset_query();
    }
    }
    else {
    }
    }
    Plugin Author Ajay

    (@ajay)

    Can you try this:

    if(function_exists('get_crp_posts_id')) {
    global $post;
    $scores = get_crp_posts_id(array('postid' => $post->ID, 'limit' => 7));
    $posts = wp_list_pluck( $scores, 'ID' );
    $args = array(
    'post__in' => $posts,
    'posts_per_page' => 7,
    'category_name' => 'news',
    'ignore_sticky_posts' => 1
    );
    $my_query = new WP_Query($args);
    if ($my_query->have_posts()) {
    while ($my_query->have_posts()) {
    $my_query->the_post();
    echo '<a href="' .  get_permalink( get_the_ID() ) . '">';
    the_title();
    echo '</a>';
    wp_reset_postdata();
    wp_reset_query();
    }
    }
    else {
    }
    }
    Thread Starter littlebizzy

    (@littlebizzy)

    Thanks very much for your reply.

    Yes! That worked. Awesome, very much appreciated ??

    However, it seems the first 2 ‘related’ posts are nearly always the same no matter what, even when posts are extremely unrelated.

    Any idea what might be causing that?

    Plugin Author Ajay

    (@ajay)

    Are you using it inside the loop?

    Thread Starter littlebizzy

    (@littlebizzy)

    Are you using it inside the loop?

    Nope, just using the code you provided in the sidebar.php

    For some reason, the 1st and 2nd related stories are nearly always the same no matter which page is being loading on the website.

    Even if the option “Find related posts based on content as well as title” is enabled or disabled, this issue still exists (Version 1.9.1).

    Have also tried clearing the cache and re-creating index.

    Plugin Author Ajay

    (@ajay)

    do you have a link / screenshot of what it looks like?

    And, what do you see if you don’t have the category option set.

    I just realised that the plugin is giving you 7 related posts via:

    $scores = get_crp_posts_id(array('postid' => $post->ID, 'limit' => 7));

    But, when you throw in the category option, you’re further limiting the 7 down to maybe 2

    Thread Starter littlebizzy

    (@littlebizzy)

    We tried playing with the code based on your suggestions.

    It didn’t really make any difference, unfortunately.

    However we will monitor this and hopefully it improves after more and more articles are published? Perhaps there are just not enough right now.

    Thanks again for your time and effort on this plugin.

    Plugin Author Ajay

    (@ajay)

    Hi,

    Thanks for the update. Usually more posts the merrier. Also, make sure that that you check the option to search by content as well.

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘Multiple related queries by post type/category?’ is closed to new replies.