@grenline123123

Нужно заменить картинку на другую?

public function check_post_is_has_thumbnail($has_thumbnail, $post, $thumbnail_id)
    {      
        if($has_thumbnail == false ) {
            return set_post_thubmnail($post, 0);
        }
    }


Нужно установить картинку на посте там где ее нет, с помощью какой функции я могу заменить картинку в посте?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 2
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
return set_post_thubmnail( $post, $thumbnail_id );

Разумеется в эту функцию должны попадать все данные $has_thumbnail, $post, $thumbnail_id

Еще вариант - при выводе проверять наличие прикрепленного изображения и подменять на дефолтное, если его нет

if ( has_post_thumbnail() ) {
	$image = get_the_post_thumbnail_url( get_the_ID(), 'large' );
} else {
	$image = get_stylesheet_directory_uri() . '/assets/img/default-cover.jpg';
}
Ответ написан
kapitansen
@kapitansen
Веб-погромист
Пример проверки на существование thumbnail:

<?php 
//должно находится внутри цикла
if( has_post_thumbnail() ) {
	the_post_thumbnail();
}
else {
	echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
?>


Если не внутри цикла, то вот так: <?php if has_post_thumbnail( $post_id ) { } ?>

Далее можно
1) использовать картинку по умолчанию
2) или взять первую картинку из списка картинок поста:

$media = get_attached_media( 'image', 2018 );
$media = array_shift( $media );

// ссылка на картинку
$image_url = $media->guid;

// выведем картинку в браузере
echo '<img src="'. $image_url .'" />';


В обоих случаях thumbnail ставится с помощью функции set_post_thumbnail( $post, $thumbnail_id );
  1. $post(число/объект) (обязательный) - ID записи, которой нужно установить миниатюру. Можно передать объект записи.
  2. $thumbnail_id(число) (обязательный) - ID вложения которое нужно прикрепить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы