有条件抓取父页面缩略图URL

时间:2014-06-05 作者:Derek

我目前正在使用此代码获取特色图像URL,并将其作为背景图像插入:

<?php $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), \'full\' );?>
<div class=\'guideHeader\' style=\'background-image: url(<?php echo $thumb[\'0\']; ?>);\'>
我想做的是将此作为一个条件:

如果父页>插入缩略图URL

  • 如果是父级的子级并且具有特征图像>插入缩略图URL
  • 1 个回复
    最合适的回答,由SO网友:Pat J 整理而成

    <?php 
    $id = $post->ID;
    if( ! has_post_thumbnail( $id ) ) {
        // the current page has no feature image
        // so we\'ll see if a) it has a parent and b) the parent has a featured image
        $ancestors = get_ancestors( $post->ID, \'page\' );
        $parent_id = $ancestors[0];
        if( has_post_thumbnail( $parent_id ) ) {
            // we\'ll use the parent\'s featured image
            $id = $parent_id;
        }
    
    }
    $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($id), \'full\' );
    ?>
    <div class=\'guideHeader\' style=\'background-image: url(<?php echo $thumb[\'0\']; ?>);\'>
    
    结果是,如果当前页面具有特征图像集,则将使用该图像集。如果没有,但它确实有父页面,那么我们将检查该父页面是否有特征图像。如果有,我们将使用该页面的ID 获取特色图像。如果父页面没有特色图像,那么我们只使用当前页面的ID 让芯片落在可能的地方。

    这是快速而肮脏的,不会进行真正的错误处理。(抄本页面一瞥get_post_thumbnail_id()wp_get_attachment_image_src() 表示它们都将返回false 如果没有特色图像,这意味着在最坏的情况下,您的页面将没有背景图像。)

    参考文献get_ancestors()
  • has_post_thumbnail()
  • get_post_thumbnail_id()
  • wp_get_attachment_image_src()
  • 结束

    相关推荐