it-swarm-es.com

¿Cómo puedo detectar si una página de BuddyPress está activa dentro de mi tema?

Estoy tratando de incluir submenús en mi tema, pero tengo problemas al navegar por las páginas de BuddyPress (a diferencia del estándar WP páginas, publicaciones, etc.). Básicamente, lo que quiero hacer es que las páginas (cuando corresponda) muestren un submenú, ala:

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

Pero cuando navego a páginas que existen bajo el control de BuddyPress, obtengo lo siguiente:

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

Estoy usando lo siguiente para generar el submenú:

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

¿A dónde voy por mal camino?

2
ZaMoose

EDITAR: Recibí una respuesta directa y fácil de parte de la gente en los foros de BuddyPress:

Hay una etiqueta de plantilla llamada bp_current_component () que devuelve un valor booleano. Entonces, en resumen, para saber si actualmente estamos en una sección de BuddyPress del sitio, simplemente llamamos:

if( bp_current_component() ){

... o, si queremos detectar cuándo NO estamos en un área de BuddyPress, a la inversa:

if( !bp_current_component() ){

Pan comido.

Entonces, en total, el código se ve así:

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