Заявление WordPress If Изображение функции

Чего я пытаюсь добиться, так это того, что для сообщений, в которых не установлено избранное изображение, используется CSS background-image по умолчанию. Это означает, что каждый пост будет иметь изображение.

<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'thumbnail') ); ?>
 <div class="entry-header featureImg" style="background-image: url('<?php echo $url ?>')"></div>

В основном вот в чем дело:

<div class="entry-header featureImg" style="background-image: url('<?php echo $url ?>')">

для сообщения без набора рекомендуемых изображений «фоновое изображение» должно быть изображением по умолчанию из CSS, потому что, поскольку код фактически написан, изображение bg для этих сообщений (без набора изображений с подвигом):

background-image: url(''); //taken from page source

это должно быть сделано с помощью операторов php if, но я понятия не имею, как работать с этим синтаксисом:

`<?php if($has_post_thumbnail) : ?>

  <?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID,'thumbnail') ); ?>
<div class="entry-header featureImg" style="background-image: url('<?php echo $url ?>')">

<?php else : ?>

    <div class="entry-header featureImg">

<?php endif; ?>
?>`

person Hann    schedule 22.02.2015    source источник
comment
Рассматривали ли вы вместо этого использование плагина? wordpress.org/plugins/default-featured-image   -  person Michael Doye    schedule 22.02.2015
comment
@MichaelDoye Мне не нужны плагины, я создаю новую тему - я уверен, что это можно сделать очень легко с помощью операторов if, но я не справляюсь с этим так хорошо ...   -  person Hann    schedule 22.02.2015


Ответы (1)


В этом случае вам просто нужно использовать оператор if, чтобы указать, следует ли отображать тег стиля целиком или нет. Однако чище добавлять такие вещи в ваш файл functions.php, поэтому, если вы добавите туда это:

function alternative_bg_img() {
  global $post;
  if (has_post_thumbnail()) {
    var $image = wp_get_attachment_url( get_post_thumbnail_id( $post->ID, 'thumbnail ') );
    echo 'style="background-image:url(' + $image + ');';
  }
}

А затем добавьте:

<div class="entry-header featureImg" <?php alternative_bg_img(); ?>>

Тогда весь тег style (а не только изображение) будет отображаться только в том случае, если у вас есть избранное изображение.

person RichieAHB    schedule 22.02.2015
comment
Хммм... если я заменю <div class="entry-header featureImg" style="background-image: url('<?php echo $url ?>')"> вашим кодом <div class="entry-header featureImg" <?php alternative_bg_img(); ?>>, изображение по умолчанию будет отображаться даже в тех сообщениях, для которых установлено изображение. - person Hann; 22.02.2015
comment
echo 'style=background-image:url(' . wp_get_attachment_url(get_post_thumbnail_id($post-›ID, 'миниатюра') ) . ');; Это не Javascript, поэтому используйте точку для объединения. Плюс преобразуется в число. - person ; 23.02.2015
comment
@bobdye, если я заменю ваш код кодом RichieAHB, избранные изображения вызовут много беспорядка на странице ... не знаю, почему. - person Hann; 23.02.2015
comment
@Hann попробуй сейчас - не проверил мои цитаты должным образом. - person RichieAHB; 23.02.2015