WordPress: создание условного оператора для загрузки избранного изображения, если оно существует, по умолчанию изображение - PullRequest
2 голосов
/ 23 января 2012

Я искал похожие вопросы к моим здесь, но не нашел ветку, которая мне помогает ... хотя я нашел здесь помощь, чтобы добраться до того места, где я сейчас нахожусь;)

Я создал слайд-шоу jquery, в котором изображения из выбранных изображений извлекаются из определенной категории сообщений. Я нашел код ниже здесь, в SO, и заставил его работать в соответствии с моими потребностями, но мне нужно добавить к нему условное выражение:

if(has_post_thumbnail()) {
$showImg = wp_get_attachment_image_src( get_post_thumbnail_id ( $post->ID ), 'xiao-show-img' );
} ?>

<a href="<?php the_permalink() ?>" title="<?php the_title() ?>" rel="<?php the_excerpt() ?>">
    <img src="<?php echo $showImg[0]; ?>" title="<?php the_title() ?>" rel="<?php the_excerpt() ?>" />
</a>

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

<?php
if(has_post_thumbnail()) { ?>
    <a href="<?php the_permalink() ?>" title="<?php the_title() ?>" rel="<?php the_excerpt() ?>">
        <img src="<?php the_post_thumbnail() ?>" title="<?php the_title() ?>" rel="<?php the_excerpt() ?>" />
    </a> 
 <?php
    } else { 
 ?>
    <a href="<?php the_permalink() ?>" title="<?php the_title() ?>" rel="<?php the_excerpt() ?>">
        <img src="<?php get_bloginfo("template_url"); ?>/images/xiao-default-image.png" />;
            </a>
    <?php }
 ?>

Я понимаю, что приведенный ниже пример не работает.

Ответы [ 2 ]

3 голосов
/ 23 января 2012

Я думаю, что основным виновником в вашем коде является src="<?php the_post_thumbnail() ?>"

, так как the_post_thumbnail () выведет html, необходимый для всего тега изображения, поэтому попробуйте вместо этого ...

<?php if(has_post_thumbnail()): ?>
    <a href="<?php the_permalink() ?>" title="<?php the_title() ?>">
        <?php the_post_thumbnail() ?>
    </a> 
<?php else: ?>
    <a href="<?php the_permalink() ?>" title="<?php the_title() ?>">
        <img src="<?php get_bloginfo("template_url"); ?>/images/xiao-default-image.png" />;
    </a>
<?php endif ?>
2 голосов
/ 23 января 2012

Более простой способ - просто измените стиль изображения, включив в него background-image: url('images/xiao=default-image.png'); с правильно установленными width: и height:. Тогда вам не нужен оператор if/else, но также измените свой $showImg, чтобы включить src, и присвойте своему изображению собственный класс:

if(has_post_thumbnail()) {
   $showImg = 'src="' . wp_get_attachment_image_src( get_post_thumbnail_id ( $post->ID ), 'xiao-show-img' ) . '"';
} ?>

<a href="<?php the_permalink() ?>" title="<?php the_title() ?>" rel="<?php the_excerpt() ?>">
    <img class="usedefault" <?php echo $showImg[0]; ?> title="<?php the_title() ?>" rel="<?php the_excerpt() ?>" />
</a>

Ваш стиль был бы что-то вроде ...

.usedefault {
    background-image: etc...
}
...