父页、子页和孙页的条件语句

时间:2013-06-26 作者:user1374796

我想知道如何设置一个条件语句来检查是否显示了父、子或孙。到目前为止,我得到的是:

<?php 

if ( is_page( \'about\' ) || \'29\' == $post->post_parent ) {
    //Start of the custom code...
    while(has_sub_field(\'site_slideshows\',\'option\')):
    ?> <!-- Closing the PHP tag -->

        <div class="slideshow-slide" style="background-image:url(<?php the_sub_field(\'site_slideshows_slide_image\'); ?>)">
            <div class="block-text" style="color: <?php the_sub_field(\'site_slideshows_slide_text_colour\'); ?>;"><?php the_sub_field(\'site_slideshows_slide_text\'); ?></div>
        </div>

    <?php //Opening the PHP tag again
    endwhile;

} elseif ( is_page( \'contact\' ) || \'31\' == $post->post_parent ) {
    //Start of the custom code...
    while(has_sub_field(\'two_site_slideshows\',\'option\')):
    ?> <!-- Closing the PHP tag -->

        <div class="slideshow-slide" style="background-image:url(<?php the_sub_field(\'two_site_slideshows_slide_image\'); ?>)">
            <div class="block-text" style="color: <?php the_sub_field(\'two_site_slide_text_colour\'); ?>;"><?php the_sub_field(\'two_site_slideshows_slide_text\'); ?></div>
        </div>

    <?php //Opening the PHP tag again
    endwhile;

}
?>
这将成功检查父页面和子页面,例如about page和about 页面,但我如何调整这些语句以同时包含孙子页面?如有任何建议,将不胜感激。

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

使用get_post_ancestors( $post ). 它返回一个post ID数组。父ID是第一个条目,父ID是第二个条目,依此类推。

$ancestors = get_post_ancestors( $post );

if ( is_page( \'about\' ) || in_array( \'29\', $ancestors ) )
{
    echo "This is About or one of its descendants";
}
elseif ( is_page( \'contact\' ) || in_array( \'31\', $ancestors ) )
{
    echo "This is Contact or one of its descendants";
}

结束
父页、子页和孙页的条件语句 - 小码农CODE - 行之有效找到问题解决它

父页、子页和孙页的条件语句

时间:2013-06-26 作者:user1374796

我想知道如何设置一个条件语句来检查是否显示了父、子或孙。到目前为止,我得到的是:

<?php 

if ( is_page( \'about\' ) || \'29\' == $post->post_parent ) {
    //Start of the custom code...
    while(has_sub_field(\'site_slideshows\',\'option\')):
    ?> <!-- Closing the PHP tag -->

        <div class="slideshow-slide" style="background-image:url(<?php the_sub_field(\'site_slideshows_slide_image\'); ?>)">
            <div class="block-text" style="color: <?php the_sub_field(\'site_slideshows_slide_text_colour\'); ?>;"><?php the_sub_field(\'site_slideshows_slide_text\'); ?></div>
        </div>

    <?php //Opening the PHP tag again
    endwhile;

} elseif ( is_page( \'contact\' ) || \'31\' == $post->post_parent ) {
    //Start of the custom code...
    while(has_sub_field(\'two_site_slideshows\',\'option\')):
    ?> <!-- Closing the PHP tag -->

        <div class="slideshow-slide" style="background-image:url(<?php the_sub_field(\'two_site_slideshows_slide_image\'); ?>)">
            <div class="block-text" style="color: <?php the_sub_field(\'two_site_slide_text_colour\'); ?>;"><?php the_sub_field(\'two_site_slideshows_slide_text\'); ?></div>
        </div>

    <?php //Opening the PHP tag again
    endwhile;

}
?>
这将成功检查父页面和子页面,例如about page和about 页面,但我如何调整这些语句以同时包含孙子页面?如有任何建议,将不胜感激。

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

使用get_post_ancestors( $post ). 它返回一个post ID数组。父ID是第一个条目,父ID是第二个条目,依此类推。

$ancestors = get_post_ancestors( $post );

if ( is_page( \'about\' ) || in_array( \'29\', $ancestors ) )
{
    echo "This is About or one of its descendants";
}
elseif ( is_page( \'contact\' ) || in_array( \'31\', $ancestors ) )
{
    echo "This is Contact or one of its descendants";
}

相关推荐

如何在WordPress unctions.php中将短代码值传递到Head

我正在尝试为wordpress帖子上的图表创建一个快捷代码。到目前为止,我已经使用了短代码,我可以看到短代码值正在被传递,但我需要知道的是如何将这些值传递到Google图表,以便正确工作。以下是我目前掌握的代码:function chart_shortcode($atts) { $a = shortcode_atts( array( \'value1\' => \'\', \'value2\' => \'\', \'value