在页面及其所有子页面上显示指定内容

时间:2011-04-29 作者:Atif

我有一个网站,有5个主要页面(将它们视为部分),然后每个页面有3-5个子页面。我想为每个部分显示一个flash横幅,即它应该在该页面及其所有子页面上显示flash横幅。

现在,我可以通过使用以下代码在主页上获得这些信息。

<?php if (is_page(\'our-school-district\')) { ?>
                    <object width="664" height="217">
                        <param name="movie" value="<?php bloginfo(\'url\'); ?>/wp-content/uploads/2011/03/school_district.swf" />
                        <param name="wmode" value="transparent" />
                        <embed src="<?php bloginfo(\'url\'); ?>/wp-content/uploads/2011/03/school_district.swf" width="664" height="217" wmode="transparent"></embed>
                        <!-- It Is Not Just About The Seeds That Are Planted, but the Garden That Surrounds Them. -->
                    </object>                    
                    <?php } ?>
如何在所有子页上也获得它?

2 个回复
SO网友:Bainternet

您可以通过使用这个漂亮的小功能来实现这一点:

function is_page_or_child_of($slug){
    global $post;
    if (empty($slug))
        return false;
    //is it the page?
    if ($post->post_name = $slug) 
        return true;
    //check the children
    $page = get_page_by_path($slug);
    $children = get_pages(\'child_of=\'.$page->ID.\'&sort_column=post_date&sort_order=desc\');
    foreach ($children as $sub){
        if ($post->ID == $sub->ID){
            return true;
        }
    }
    return false;
}
而不是使用is_page(\'our-school-district\') 使用s_page_or_child_of(\'our-school-district\')

SO网友:xLRDxREVENGEx

您应该为每个页面创建一个模板,这样您就可以直接将横幅添加到其中,而无需处理大量php,除非横幅位于页面模板之外查看此链接以获得更好的解释Wordpress Codex - Pages

结束