it-swarm.asia

Bir BuddyPress sayfasının temamdan aktif olup olmadığını nasıl anlayabilirim?

Temamda alt menüler çalışmaya çalışıyorum, ancak BuddyPress sayfalarına (standart WP sayfalar, yazılar vb. Tersine) giderken sorunlarla karşılaşıyorum. Temel olarak, yapmak istediğim sayfaların (uygun olduğunda) ala, alt bir menü göstermesi:

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

Ancak BuddyPress'in kontrolü altında bulunan sayfalara gittiğimde aşağıdakileri alıyorum:

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

Alt menüyü oluşturmak için aşağıdakileri kullanıyorum:

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 
  }
}

Nereye sapıyorum?

2
ZaMoose

EDIT: BuddyPress forumlarındaki arkadaşlardan doğrudan ve kolay bir cevap aldım:

Bir boole döndüren bp_current_component () adında bir şablon etiketi vardır. Yani, kısaca, şu anda sitenin BuddyPress-ized bölümünde olup olmadığımızı söylemek için basitçe:

if( bp_current_component() ){

... ya da, bir BuddyPress bölgesinde olmadığımızı tespit etmek istiyorsak, tersi:

if( !bp_current_component() ){

Basit.

Yani, toplamda, kod şöyle görünür:

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>';
}
2
ZaMoose