$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 '
';
}
}
}