我如何才能检测到我的主题中的BuddyPress页面是否处于活动状态?

时间:2010-08-19 作者:ZaMoose

我试图将子菜单加入到我的主题中,但在导航到BuddyPress页面时遇到了问题(与标准WP页面、帖子等相反)。基本上,我想做的是让页面(在适当的情况下)显示一个子菜单,ala:

http://skitch.com/zamoose/d12ns/about-us-delta-sigma-theta-sorority-inc-south-jersey-alumnae-chapter

但当我浏览到BuddyPress控制下的页面时,我会得到以下信息:

http://skitch.com/zamoose/d12nu/delta-sigma-theta-sorority-inc-south-jersey-alumnae-chapter

我使用以下命令生成子菜单:

if (is_page()) {
  global $wp_query;

  if( empty($wp_query->post->post_parent) ) {
    $parent = $wp_query->post->ID;
  } else {
    $parent = $wp_query->post->post_parent;
  }

  if(wp_list_pages("title_li=&child_of=$parent&echo=0" )) { ?>
    <ul id="subnav">
    <?php 
      wp_list_pages("title_li=&child_of=$parent&echo=1" );
    ?>
    </ul>
    <?php 
  }
}
我在哪里误入歧途?

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

编辑:我从BuddyPress论坛上的朋友那里得到了一个直接、简单的答案:

有一个名为bp\\u current\\u component()的模板标记,它返回一个布尔值。因此,简言之,要知道我们目前是否在该网站的BuddyPress部分,我们只需打电话:

if( bp_current_component() ){
。。。或者,如果我们想检测何时不在BuddyPress区域,则相反:

if( !bp_current_component() ){
简单的豌豆。

因此,总的来说,代码如下所示:

if( !bp_current_component() ){
    if ( is_page() ) {
        if( empty( $wp_query->post->post_parent ) ) {
            $parent = $wp_query->post->ID;
        } else {
            $parent = $wp_query->post->post_parent;
        }

        if( wp_list_pages( "title_li=&child_of=$parent&echo=0" ) ) { 
            echo \'<ul id="subnav">\';
            wp_list_pages( "title_li=&child_of=$parent&echo=1" );
            echo \'</ul>\';
        }
    }
} else {
    echo \'<ul id="subnav">\';
    if ( is_user_logged_in() ){
        bp_get_loggedin_user_nav();         
    } else {
        bp_get_displayed_user_nav();
    }
    echo \'</ul>\';
}

结束

相关推荐