$current_post_type, 'post__not_in' => array( $post->ID ), 'posts_per_page' => $number, 'orderby' => $orderby, 'order' => $order, ); if ( 'tag' == $by ) { $terms = get_the_tags( $post->ID ); $term_ids = array(); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $term_ids = wp_list_pluck( $terms, 'term_id' ); } $query_args['tag__in'] = $term_ids; } else { $terms = get_the_category( $post->ID ); $term_ids = array(); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $term_ids = wp_list_pluck( $terms, 'term_id' ); } $query_args['category__in'] = $term_ids; } // Try get related by hand pick. $post__in = get_post_meta( $post->ID, '_starterblog_related_posts' ); if ( ! empty( $post__in ) && is_array( $post__in ) ) { unset( $query_args['category__in'] ); unset( $query_args['tag__in'] ); $query_args['post__in'] = $post__in; } $query_args = apply_filters( 'starterblog/single_post/related_args', $query_args ); $related_cats_post = new WP_Query( $query_args ); return $related_cats_post; } /** * Display related post * * @return bool */ function display() { if ( ! is_single() ) { return false; } $number = StarterBlog()->get_setting( 'single_blog_post_related_number' ); $number = absint( $number ); if ( $number <= 0 ) { return false; } $layout = 'grid'; $title = StarterBlog()->get_setting( 'single_blog_post_related_title' ); $cols = StarterBlog()->get_setting( 'single_blog_post_related_col', 'all' ); $by = StarterBlog()->get_setting( 'single_blog_post_related_by' ); $orderby = StarterBlog()->get_setting( 'single_blog_post_related_orderby' ); $order = StarterBlog()->get_setting( 'single_blog_post_related_order' ); // Get related posts. $query_posts = $this->get_related_post( null, $by, $number, $orderby, $order ); if ( $query_posts ) { $image_position = StarterBlog()->get_setting( 'single_blog_post_related_img_pos' ); $thumbnail_size = StarterBlog()->get_setting( 'single_blog_post_related_thumbnail_size' ); $excerpt_length = StarterBlog()->get_setting( 'single_blog_post_related_excerpt_length' ); $meta_config = StarterBlog()->get_setting( 'single_blog_post_related_meta' ); $meta_args = array(); $wrapper_classes = array( 'entry--item entry-related', 'related-' . esc_attr( $layout ), 'img-pos-' . esc_attr( $image_position ), ); if ( ! is_array( $cols ) ) { $cols = array(); } $cols = wp_parse_args( $cols, array( 'desktop' => 2, 'tablet' => 2, 'mobile' => 2, ) ); $cols = array_map( 'absint', $cols ); if ( ! $cols['desktop'] ) { $cols['desktop'] = 2; } if ( ! $cols['tablet'] ) { $cols['tablet'] = 1; } if ( ! $cols['mobile'] ) { $cols['mobile'] = 1; } $layout_class = "starterblog-grid-{$cols['desktop']}_sm-{$cols['tablet']}}_xs-{$cols['mobile']}}"; if ( ! $query_posts->have_posts() ) { return ''; } global $post; echo '
'; echo '

' . wp_kses_post( $title ) . '

'; echo ''; echo '
'; } } }