php if, else & custom fields – синтаксическая ошибка

Я только начинаю использовать пользовательские поля и хотел бы использовать его для отображения окна автора с (1) авторской фотографией (2) имя автора (3) автор био.

Я использую этот код в loop-single.php, и он отлично работает:

<?php if ( get_post_meta($post->ID, 'author-photo', 'author-name', 'author-bio', true) ) : ?> <div class="authorbox"> <div class="authorphoto"> <img src="<?php $key="author-photo"; echo get_post_meta($post->ID, $key, true); ?>" /> </div> <div class="authorbox-content"> <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3> <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p> </div> </div> <?php endif; ?> 

В основном, приведенное выше отображает фотографию автора, имя и биографию, если все 3 пользовательских значения поля существуют.

Затем я попытался отобразить только имя автора и биографию, если значение фотографии не существует. Таким образом, я добавляю код ниже приведенного выше кода, и весь полученный код выглядит следующим образом:

 <?php if ( get_post_meta($post->ID, 'author-photo', 'author-name', 'author-bio', true) ) : ?> <div class="authorbox"> <div class="authorphoto"> <img src="<?php $key="author-photo"; echo get_post_meta($post->ID, $key, true); ?>" /> </div> <div class="authorbox-content"> <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3> <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p> </div> </div> <?php endif; ?> <?php if ( get_post_meta($post->ID, 'author-name', 'author-bio', true) ) : ?> <div class="authorbox"> <div class="authorbox-content-nophoto"> <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3> <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p> </div> </div> <?php endif; ?> 

Теперь это прекрасно работает, если существуют только имя автора и биоцены. Однако, если все 3 значения существуют, например, фото, имя и биография, возникает проблема … будут отображаться 2 поля автора (один с фотографией и один без фото).

Как я могу решить эту проблему? (Мне нужен только один поле автора, отображаемое в любой момент, либо с фотографией, либо без фото).

Заранее спасибо!

PS: Я попробовал добавить 'else', но не уверен в точном способе его кодирования, я получил синтаксические ошибки при попытке добавить 'else' между кодом. Любые указатели будут очень благодарны!

Есть несколько способов сделать это. Пытаться:

 <?php if ( get_post_meta($post->ID, 'author-photo', 'author-name', 'author-bio', true) ) { ?> <div class="authorbox"> <div class="authorphoto"> <img src="<?php $key="author-photo"; echo get_post_meta($post->ID, $key, true); ?>" /> </div> <div class="authorbox-content"> <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3> <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p> </div> </div> <?php } ?> <?php else { ?> <?php if ( get_post_meta($post->ID, 'author-name', 'author-bio', true) ) { ?> <div class="authorbox"> <div class="authorbox-content-nophoto"> <h3 class="author-name"><?php $key="author-name"; echo get_post_meta($post->ID, $key, true); ?></h3> <p><?php $key="author-bio"; echo get_post_meta($post->ID, $key, true); ?></p> </div> </div> <?php } ?> <?php } ?>