it-swarm-ko.tech

내 테마 내에서 BuddyPress 페이지가 활성화되어 있는지 여부를 어떻게 확인할 수 있습니까?

하위 테마를 내 테마로 사용하려고하지만 BuddyPress 페이지로 이동할 때 문제가 발생합니다 (표준 WP 페이지, 게시물 등). 기본적으로, 내가하고 싶은 것은 페이지 (적절한 경우)가 다음과 같은 하위 메뉴를 표시하는 것입니다.

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

그러나 BuddyPress의 컨트롤 아래에있는 페이지로 이동하면 다음과 같이 표시됩니다.

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

하위 메뉴를 생성하려면 다음을 사용하고 있습니다.

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

나는 어디로 가고 있는가?

2
ZaMoose

편집 : 나는 BuddyPress 공개 토론에 사람에게서 직접적이고, 쉬운 응답을 받았다 :

부울을 반환하는 bp_current_component ()라는 템플릿 태그가 있습니다. 간단히 말해서, 우리가 현재 BuddyPress -ized 섹션에 있다면, 우리는 간단하게 다음과 같이 호출합니다 :

if( bp_current_component() ){

... 또는 우리가 BuddyPress 영역에 있지 않을 때를 감지하려면 역행렬을 사용하십시오.

if( !bp_current_component() ){

쉬워요.

전체적으로 코드는 다음과 같습니다.

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