Comment puis-je détecter si une page BuddyPress est active à partir de mon thème?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/577

  •  16-10-2019
  •  | 
  •  

Question

Je suis en train de sous-menus travaux dans mon thème, mais je suis en cours d'exécution dans les problèmes lors de la navigation sur les pages BuddyPress (par opposition aux pages standard WP, ??messages, etc.). Au fond, ce que je veux faire est d'avoir des pages (le cas échéant) afficher un sous-menu, ala:

http://skitch.com/zamoose/d12ns/about-us-delta-sigma-theta-sorority -comprenant-sud-jersey-alumnae chapitre

Mais quand je navigue sur des pages qui existent sous le contrôle de BuddyPress, je reçois les points suivants:

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

J'utilise ce qui suit pour générer le sous-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 
  }
}

Où suis-je égaré?

Était-ce utile?

La solution

EDIT: J'ai reçu une réponse directe, facile des gens sur les forums de BuddyPress:

Il y a une étiquette de modèle appelé bp_current_component () qui retourne un booléen. Donc, en bref, de savoir si nous sommes actuellement dans une section isé BuddyPress du site, nous appelons simplement:

if( bp_current_component() ){

... ou, si l'on veut détecter quand nous ne sommes pas dans une zone de BuddyPress, l'inverse:

if( !bp_current_component() ){

Facile comme bonjour.

Ainsi, au total, les regards de code comme ceci:

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>';
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top