¿Cómo puedo detectar si una página BuddyPress está activo desde el interior de mi tema?

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

  •  16-10-2019
  •  | 
  •  

Pregunta

Estoy intentando trabajo submenús en mi tema, pero estoy se produzcan problemas al navegar en las páginas BuddyPress (a diferencia de páginas estándar WP, postes, etc.). Básicamente, lo que quiero hacer es tener páginas (en su caso) mostrar un submenú, Ala:

http://skitch.com/zamoose/d12ns/about-us-delta-sigma-theta-sorority -inc-sur-camiseta-alumnas-capítulo

Pero cuando navego a páginas que existen bajo el control BuddyPress', me sale el siguiente:

http://skitch.com/zamoose/d12nu/delta-sigma-theta-sorority-inc-south -jersey-alumnas-capítulo

Estoy usando el 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 
  }
}

¿Dónde voy por mal camino?

¿Fue útil?

Solución

EDIT: He recibido una respuesta directa, fácil de la gente en los foros sobre BuddyPress:

Hay una etiqueta llamada bp_current_component () que devuelve un valor booleano. Así que, en definitiva, de saber si estamos actualmente en una sección zado-BuddyPress del sitio, simplemente llamamos:

if( bp_current_component() ){

... o, si queremos detectar cuando no estamos en una zona de BuddyPress, el inverso:

if( !bp_current_component() ){

Peasy fácil.

Por lo tanto, en total, las miradas código como el siguiente:

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>';
}
Licenciado bajo: CC-BY-SA con atribución
scroll top