[워드프레스] 대시보드 표시줄에 새로운 항목 추가하기

Last Updated: 2015년 12월 30일 댓글

워드프레스 툴바(대시보드 표시줄)에 새로운 항목을 추가하려면 "admin_bar_menu" 후크를 사용해야 합니다. 쉽게 이해하기 위해 buddyPress의 프로필 페이지를 WordPress 툴바에 추가하는 방법을 생각해보겠습니다.

buddyPress의 프로필 페이지의 URL은 설정 > 버디프레스 > 페이지에서 "회원" 페이지에 설정한 페이지의 주소에 따라 다릅니다. 수동으로 직접 페이지 URL을 구성해도 되지만 bbPress의 프로필 페이지의 URL로 다음 함수를 사용하면 됩니다.

bp_loggedin_user_domain()

그러면 다음과 같은 코드를 워드프레스 함수 파일에 추가하도록 합니다.

function buddypress_adminbar_profile($wp_admin_bar){
$bpsiteurl = bp_loggedin_user_domain();
$args = array(
'id' => 'buddypress-node',
'title' => '프로필',
'href' => $bpsiteurl,
'meta' => array(
'class' => 'buddypress-node-class'
)
);
$wp_admin_bar->add_node($args);
}

add_action('admin_bar_menu', 'buddypress_adminbar_profile', 75);

그러면 다음 그림과 같이 프로필 메뉴 항목이 워드프레스 툴바(대시보드 표시줄)에 추가됩니다.

워드프레스 표시줄에 메뉴 항목 추가하기

위와 같은 코드로 잘 작동하는데요, 여기서 문제는 비로그인 사용자에게도 이 메뉴가 표시될 수 있습니다. 이 경우 로그인 사용자에게만 표시되도록 if ( is_user_logged_in() ) 라인을 추가하도록 합니다.

참고로 Polylang과 같은 다국어 플러그인을 사용하는 경우 잘 작동하지 않을 수 있습니다. (다국어 사이트를 위해 플러그인을 사용하는 고유주소 등과 관련하여 예상치 못한 문제가 간혹 발생하는 것 같습니다.)

메뉴 우선순위 지정:

위의 코드에서 숫자 "75"는 우선순위를 나타냅니다. 기본적인 우선순위(Priority)는 다음과 같습니다(참고).

  • wp_admin_bar_wp_menu - 10
  • wp_admin_bar_my_sites_menu - 20
  • wp_admin_bar_site_menu - 30
  • wp_admin_bar_updates_menu - 40
  • wp_admin_bar_comments_menu - 60
  • wp_admin_bar_new_content_menu - 70
  • wp_admin_bar_edit_menu - 80

참고:


댓글 남기기

Leave a Comment