if заявление для WordPress по умолчанию показан на одном сообщении

Я создаю веб-сайт и вставляю блог, в моем выражении if на домашней странице есть определенное изображение для использования, и тогда, конечно, мои страницы будут использовать выбранное изображение, которое я выбираю на странице. Я бы хотел сделать это, если я не добавлю в него свой собственный образ, который по умолчанию соответствует определенному.

Так будет, если у него нет has_post_thumbnail, тогда используйте «images / blog-banner.jpg». В то же время, если есть has_post_thumbnail, я бы хотел использовать этот.

Я пытался сделать это сам, но меня всегда путали с утверждением if.

/** Add the featured image section */ add_action( 'genesis_before_header', 'minimum_featured_image' ); function minimum_featured_image() { if ( is_home() ) { echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/sample.jpg" /></div>'; } elseif ( is_singular( array( 'post' ) ) ! has_post_thumbnail() ){ echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/blog-banner.jpg" /></div>'; } else ( is_singular( array( 'post', 'page' ) ) && has_post_thumbnail() ){ echo '<div id="featured-image">'; echo get_the_post_thumbnail($thumbnail->ID, 'header'); echo '</div>'; } } 

Любой совет будет полезен!

Solutions Collecting From Web of "if заявление для WordPress по умолчанию показан на одном сообщении"

Итак, у нас есть следующее:

 if ( is_home() ) { echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/sample.jpg" /></div>'; } elseif ( is_singular( array( 'post' ) ) ! has_post_thumbnail() ){ echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/blog-banner.jpg" /></div>'; } else ( is_singular( array( 'post', 'page' ) ) && has_post_thumbnail() ){ echo '<div id="featured-image">'; echo get_the_post_thumbnail($thumbnail->ID, 'header'); echo '</div>'; } 

Во-первых, это утверждение не является общим и не имеет смысла для большинства людей:

 elseif ( is_singular( array( 'post' ) ) ! has_post_thumbnail() ){ 

Я прочитал это и посмотрю:

если сообщение единственное, не имеет миниатюры сообщения

Который вызвал бы меня забавные взгляды, если бы я сказал это кому-то вслух. Позволяет изменить его, чтобы он означал то, что вы на самом деле хотите:

если сообщение сингулярно, и у него нет миниатюры сообщения

 elseif ( is_singular( array( 'post' ) ) && ( ! has_post_thumbnail() ) ) { 

У вас также есть синтаксическая ошибка, посмотрите на свой случай, вы делаете это:

 if ( condition ) { // stuff } else ( new condition ) { // stuff } 

Это недопустимый синтаксис PHP, но даже если это было, это неожиданно, необычно, трудно уловить и нарушает каждый стандарт кодирования, о котором я знаю. Вместо этого вы должны использовать elseif, поэтому давайте исправить это

Также позволяет практиковать спартанское программирование и возвращать как можно раньше, удаляя все остальные инструкции в этом процессе:

 if ( is_home() ) { echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/sample.jpg" /></div>'; return; } if ( is_singular( array( 'post' ) ) && ( !has_post_thumbnail() ) ){ echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/blog-banner.jpg" /></div>'; return; } if ( is_singular( array( 'post', 'page' ) ) && has_post_thumbnail() ){ echo '<div id="featured-image">'; echo get_the_post_thumbnail($thumbnail->ID, 'header'); echo '</div>'; } 

У вас, наконец, еще одна проблема, не каждая функция может вызываться за пределами основного цикла, это включает has_post_thumbnail . Как функция знает, о чем вы говорите, если вы еще не установили текущий пост? PHP не является экстрасенсом, поэтому давайте расскажем об этом:

 global $post; $post->ID; 

Предоставляя нам:

 global $post; if ( is_home() ) { echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/sample.jpg" /></div>'; return; } if ( is_singular( array( 'post' ) ) && ( !has_post_thumbnail( $post->ID ) ) ){ echo '<div id="featured-image-home"><img src="'. get_stylesheet_directory_uri() . '/images/blog-banner.jpg" /></div>'; return; } if ( is_singular( array( 'post', 'page' ) ) && has_post_thumbnail( $post->ID ) ){ echo '<div id="featured-image">'; echo get_the_post_thumbnail($thumbnail->ID, 'header'); echo '</div>'; } 

Наконец, посмотрите на свой призыв, чтобы захватить миниатюру:

 echo get_the_post_thumbnail($thumbnail->ID, 'header'); 

Как я уже упоминал ранее, PHP не является экстрасенсом, и никакое количество ясновидения не заполнит переменную $thumbnail материалом, возможно, вы имеете в виду текущую должность? Если так, вместо этого используйте $post .

Помните, вы должны заявить все заранее. Если вы не сообщите код о чем-то и затем попытаетесь его использовать, PHP предположит, что вы имеете в виду null или false или что-то подобное, и генерируете предупреждение. Это приводит к разным проблемам. Просто потому, что вы знаете, что вы подразумевали / предназначили, не означает, что компьютер