浏览家谱,找到特色形象

时间:2012-09-05 作者:BFTrick

我刚刚建立了一个主题,在当前页面上寻找一个特色图片,如果找不到特色图片,它将继续通过家谱向后看,直到找到一个。然后它会打印出来。

我写了一个小脚本来实现这一点,但它似乎效率低下。必须有更好的方法来做这件事。可能是我错过的WP功能?这是代码,请仔细查看。

//get the ancestors
$familyTree = get_ancestors($post->ID,\'page\');
array_unshift( $familyTree, $post->ID ); //add the current page to the begining of the list

//loop through the family tree until you find a result or exhaust the array
$featuredImageFound = false;
$i = 0;
while (!$featuredImageFound && ($i < count($familyTree)) ) {
    if(has_post_thumbnail( $familyTree[$i] )){
        $featuredImage = get_the_post_thumbnail($familyTree[$i], \'full\');
    $featuredImageFound = true;
}
$i++;
}

// if the page has a featured image then show it
echo ( $featuredImageFound ? $featuredImage : "" );

1 个回复
最合适的回答,由SO网友:Otto 整理而成

我看不出有什么特别的问题,尽管我可能会这样写循环:

$featuredImage = \'\';
foreach ( $familyTree as $family_postid ) {
    if ( has_post_thumbnail( $family_postid ) ) {
        $featuredImage = get_the_post_thumbnail( $family_postid, \'full\' );
        break;
    }
}
理解起来更简单一些,并且消除了计数器和布尔型found变量的使用。

结束

相关推荐

rewrite rules hierarchical

我希望我的WordPress遵循以下规则:/productes/ 包含所有产品的页面/productes/[category]/ 包含该类别所有产品的分类页面/productes/[category]/[subcategory]/ 包含该类别所有产品(与2相同)的分类页面/[productes]/[category]/[product]/ A.single-productes.php 将显示类别产品/[productes]/[category]/[subcategory]/[product]/ A.sin