PHP: unexpected 'echo' при использовании тернарного оператора в шаблоне WordPress

Вывожу изображение страницы в качестве фона для блока. Поскольку не у всех страниц есть изображения, то пишу проверку: если есть thumbnail, ставить его, если нет - картинку-заглушку. В таком виде всё работает:

<div class="thumbnail-block" style="background-image: url(
    <?php
        if (has_post_thumbnail()) { 
            the_post_thumbnail_url(); 
        } else {
            echo get_template_directory_uri().'/assets/img/single-fon.jpg';
        }
    ?>
)">

Захотел упростить эту конструкцию и сделать проверку через тернаторный оператор:

<div class="thumbnail-block" style="background-image: url(<?php (has_post_thumbnail()) ? the_post_thumbnail_url() : echo get_template_directory_uri().'/assets/img/single-fon.jpg'; ?>)">

Но при такой записи получаю ошибку: Parse error: syntax error, unexpected 'echo' (T_ECHO)

Вопрос: почему при записи if else нет проблем с echo, а при использовании тернарного оператора она появляется? И как её исправить?


Ответы (0 шт):