it-swarm-id.com

Bagaimana saya bisa mendeteksi apakah halaman BuddyPress aktif dari dalam tema saya?

Saya mencoba untuk mengerjakan sub-menu ke dalam tema saya tetapi saya mengalami masalah ketika menavigasi ke halaman BuddyPress (sebagai lawan dari standar WP halaman, posting, dll). Pada dasarnya, yang ingin saya lakukan adalah memiliki halaman (jika perlu) menampilkan sub menu, ala:

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

Tetapi ketika saya menavigasi ke halaman yang ada di bawah kontrol BuddyPress, saya mendapatkan yang berikut:

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

Saya menggunakan yang berikut ini untuk menghasilkan sub-menu:

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

Ke mana aku akan tersesat?

2
ZaMoose

EDIT: Saya menerima jawaban langsung dan mudah dari orang-orang di forum BuddyPress:

Ada tag templat yang disebut bp_current_component () yang mengembalikan boolean. Jadi, singkatnya, untuk mengetahui apakah kami saat ini berada di bagian situs yang di-BuddyPress, kami cukup menelepon:

if( bp_current_component() ){

... atau, jika kita ingin mendeteksi ketika kita TIDAK berada di area BuddyPress, kebalikannya:

if( !bp_current_component() ){

Peasy mudah.

Jadi, secara total, kode ini terlihat seperti ini:

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