Это как я загружаю изображение миниатюр сообщения?
Что делать, если изображения нет, я хочу показать изображение по умолчанию?
Как я могу это показать.
Вот код, который я использую для отображения эскизов.
$html .= '<div class="post event" id="post-'.$post->ID.'"> <a href="'.get_permalink($post->ID).'"> '.get_the_post_thumbnail().' </a> <div class="content"> <span class="title"> <a title="'.$post->post_title.'" href="'.get_permalink($post->ID).'">'.$post->post_title.'</a> </span> <div class="addl-123">'; $terms = wp_get_post_terms($post->ID, 'sublocation'); if($terms) { $out = array(); foreach ($terms as $term) { $out[] = '<a class="' .$term->slug .'" href="' .get_term_link( $term->slug, 'sublocation') .'">' .$term->name .'</a>'; } //echo join( ', ', $out); $html .= join( ', ', $out); } if($is_parent != 0) { $address = get_post_meta($is_parent,'address',true); } else { $address = get_post_meta($post->ID,'address',true); } if(!$address){ $address='-'; } if($address && $address!="-"){$html .= "<b>".$address."</b>";} $html .= '<p>Timinigs: '.get_post_meta($post->ID, 'cstimings', true). ' </p>'; $html .= '</div>
В строке 2 кода, я могу отображать миниатюры сообщений, у которых есть изображения. но для других сообщений нет доступных изображений. поэтому для таких сообщений я хочу отображать изображение по умолчанию.
Как я могу это сделать ?
Функциональные функции, связанные с изображением, не дают возможности определить изображение по умолчанию / резервное копирование. Таким образом, вам нужно будет определить его самостоятельно, например
<?php $featured_image = ( '' != get_the_post_thumbnail() ? get_the_post_thumbnail() : get_template_directory_uri() . '/images/img_not_available.png' ); ?> <a href="<?php the_permalink(); ?>"><?php echo $featured_image; ?></a>
Три изменения:
get_the_post_thumbnail()
возвращает пустую строку, а не false
если изображение не найдено. get_template_directory_uri()
а не get_stylesheet_directory_uri()
. Также обратите внимание: пример кода предполагает контекст внутри цикла . Измените соответственно, если он используется вне цикла.
Этот код работает с файлом функций ваших дочерних тем.
Кроме того, вы также можете установить резервную ошибку по умолчанию, если в сообщении нет изображений:
function wpforce_featured() { global $post; $already_has_thumb = has_post_thumbnail($post->ID); if (!$already_has_thumb) { $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" ); if ($attached_image) { foreach ($attached_image as $attachment_id => $attachment) { set_post_thumbnail($post->ID, $attachment_id); } } else { set_post_thumbnail($post->ID, '414'); } } } //end function add_action('the_post', 'wpforce_featured'); add_action('save_post', 'wpforce_featured'); add_action('draft_to_publish', 'wpforce_featured'); add_action('new_to_publish', 'wpforce_featured'); add_action('pending_to_publish', 'wpforce_featured'); add_action('future_to_publish', 'wpforce_featured');
Источник http://wpforce.com/automatically-set-the-featured-image-in-wordpress/
Что-то вроде этого?
<?php if ( has_post_thumbnail()): the_post_thumbnail(); else: ?> <!-- Do default stuff here --> <?php endif; ?>