Рекомендуемое изображение Wordpress с резервным изображением в качестве фонового изображения

Это мой первый набег на Wordpress, и я пытаюсь создать единую страницу поста. У меня появляется рекомендуемое изображение, но я пытаюсь заменить его на резервное изображение, если оно отсутствует.

В настоящее время выглядит так (obvs внутри цикла):

<?php $thumb = get_the_post_thumbnail_url(); ?>

<div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
     <div class="page-title"><h1><?php the_title(); ?></h1></div>
</div>

И это здорово, так как он вытягивает URL-адрес, который я затем помещаю с помощью бита echo $ thumb.

Я думаю, мне нужно каким-то образом определить $ thumb либо как URL-адрес эскиза, либо как другой URL-адрес, но не знаю, как это сделать?

Мне удалось сделать это как тег изображения для страницы со списком, но я бы предпочел иметь возможность сделать это как фоновое изображение (просто вставляя URL-адреса), если бы я мог.

Это то, что в данный момент используется в листинге, но работает только в теге img.

<div class="news-collation-img">
    <?php if ( has_post_thumbnail() ) {
          the_post_thumbnail();
          } else { ?>
          <img src="<?php bloginfo('template_directory'); ?>/img/news/fallback-image.jpg" alt="<?php the_title(); ?>" />
    <?php } ?>
</div>

Создавать красивые картинки намного проще, чем заставлять их работать :-p

Спасибо за любую помощь, которую может оказать каждый.


person NickL    schedule 22.10.2017    source источник


Ответы (2)


попробуй это :

<?php 
//define fallback image path
$thumb = bloginfo('template_directory').'/img/news/fallback-image.jpg';
if ( has_post_thumbnail() ) {  
//override  fallback image if post has any thumbnail
$thumb = get_the_post_thumbnail_url();
 }
 ?>

<div class="news-hero" style="background-image: url('<?php echo $thumb;?>')">
     <div class="page-title"><h1><?php the_title(); ?></h1></div>
</div>
person Balwant    schedule 22.10.2017
comment
В некотором смысле, он теперь выплевывает первую часть URL-адреса, вплоть до каталога темы, но просто помещает его как копию в самом верху страницы. Я могу заставить его работать, если я включу bloginfo ('template_directory') перед эхо $ thumb, но тогда он не будет извлекать фактическое избранное изображение. - person NickL; 22.10.2017

По какой-то причине в приведенном выше примере каталог шаблонов создается в виде простого текста на странице. Если я повторю $thumb = bloginfo('template_directory').'/img/news/fallback-image.jpg';, появится правильный URL.

Однако при обратном вызове в виде URL-адреса в фоновом изображении <div class="news-hero" style="background-image: url('<?php echo $thumb;?>')"> это не сработало.

Когда я сменил $thumb = bloginfo('template_directory') на $thumb = get_template_directory_uri(), все заработало. Понятия не имею, почему, как я полагаю, они делают то же самое. (bloginfo ('template_directory') только тогда выполняет get_template_directory_uri).

Но это сработало, так что меня это устраивает ...

person NickL    schedule 25.10.2017