Связанные посты

205
05 мая 2017, 20:05

Интересует вопрос по плагину: Contextual Related Posts
Мне нужно выводить с помощью do_shortcode() связанные посты, но проблема в том, что если необходимо найти похожие записи в произвольном типе записей, тогда этот плагин не находит записи в произвольных типах.
т.е. допустим в шаблоне single.php выводится обычный тип записи - post.
А если мне нужно найти похожие записи post в произвольном типе записей - custom_type, тогда этот плагин не находит похожих записей в custom_type.
А в custom_type содержится контент, похожий на контент в типе post.
т.е. нужно в шаблоне single.php выводить в боковой колонке похожие записи произвольного типа custom_type.
При создании в resister_post_type произвольного типа custom_type, ему назначается поддержка обычных типов постов, такие как post, page, поэтому по идее плагин связанных постов должен находить похожие записи в custom_type.
В нужно месте страницы, где необходимо выводить связанные посты я вызываю do_shortcode('[shortcode]');

function custom_shortcode($atts) {
    $atts = shortcode_atts( array(
        'count' => 5,
        'item_before' => '<ul>',
        'item_after'  => '</ul>',
        'inner_before' => '<li>',
        'inner_after' => '</li>'
    ), $atts );
    $content = $atts['item_before'];
    $partnerLink = get_option('partner_link');
    global $post;
    if ( function_exists( 'get_crp_posts_id' )) {
        $scores = get_crp_posts_id( array(
            'postid' => $post->ID,
            'limit' => $atts['count'],
            'post_types' => 'custom_type'
        ) );
        $posts = wp_list_pluck( (array) $scores, 'ID' );
        $args = array(
            'post__in' => $posts,
            'posts_per_page' => $atts['count'],
            'ignore_sticky_posts' => 1,
            'post_type' => 'custom_type'
        );
        $related_posts = new WP_Query( $args );
        if ( $related_posts->have_posts() ) {
            while ( $related_posts->have_posts() ) {
                $related_posts->the_post();
                $post = $related_posts->post;
                $title = $post->post_title;
                $content .= $atts['inner_before'];
                $content .= $title;
                $content .= $atts['inner_after'];
            }
        }
    }
    $content .= $atts['item_after'];
    return $content;
}

Функция, которая должна находить похожие записи в плагине Contextual Related Posts, называется get_crp_posts_id.
В результате вышеприведённого кода строка $posts = wp_list_pluck( (array) $scores, 'ID' ); которая должна находить похожие записи, возвращает пустой массив.
Помогите пожалуйста настроить вывод похожих постов
Также пытался сделать это же с помощью плагина WordPress Popular Posts, у него также есть похожий интерфейс вывода шорткода, но ситуация такая же

READ ALSO
Динамические значения bootstrap multiselect

Динамические значения bootstrap multiselect

Как можно динамически изменять значения в мультиселекте, при условии, что есть поля в json? есть экшн, возвращающий json с районами, в зависимости...

226
PHP, замена html тегов с занесением их в массив

PHP, замена html тегов с занесением их в массив

Пытаюсь сообразить, как можно реализовать следующую задачу:

214
как избежать вложенные формы

как избежать вложенные формы

Друья! Есть формаВизуально выглядит так:

186