Проблема: не включена поддержка миниатюр в теме!
Добавьте в файл functions.php
вашей темы:
// Включение поддержки миниатюр
add_theme_support('post-thumbnails');
// Добавление размеров миниатюр (опционально)
add_image_size('medium', 300, 200, true); // средний размер
add_image_size('thumbnail', 150, 150, true); // миниатюра
После этого:
В админке в редакторе записи появится виджет «Миниатюра»
Можно будет устанавливать featured image для записей
Функция the_post_thumbnail() заработает
Проверка: После добавления кода зайдите в любую запись — справа в колонке должен появиться блок «Миниатюра».
Всего 18 строк! Просто вставьте в functions.php темы. Если надо вывести миниатюры, мне не надо было, поэтому не тестировал, но оставлю код:
function related_posts_short() {
global $post;
$cats = get_the_category($post->ID);
if(!$cats) return '';
$args = array(
'category__in' => wp_list_pluck($cats, 'term_id'),
'post__not_in' => array($post->ID),
'posts_per_page' => 6,
'orderby' => 'rand'
);
$query = new WP_Query($args);
if(!$query->have_posts()) return '';
ob_start();
echo '<div class="related-grid">';
while($query->have_posts()): $query->the_post();
echo '<a href="'.get_permalink().'" class="related-item">';
if(has_post_thumbnail()) the_post_thumbnail('thumbnail');
the_title();
echo '</a>';
endwhile;
echo '</div>';
wp_reset_postdata();
return ob_get_clean();
}
add_filter('the_content', function($content) {
if(is_single() && !is_admin()) $content .= related_posts_short();
return $content;
});
Добавить комментарий