¿Cómo puedo detectar si una página BuddyPress está activo desde el interior de mi tema?
-
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:
Pero cuando navego a páginas que existen bajo el control BuddyPress', me sale el siguiente:
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?
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>';
}