[jp_post_view]
- 이 주제에는 4개 답변, 2명 참여가 있으며 YOUNG JIN LEE가 4 년, 1 월 전에 전에 마지막으로 업데이트했습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
-
글쓴이글
-
2020-09-19 1:36 오후 #9449
bbpress의 프로파일을 메뉴로 집어 넣기
/** * Generate BBpress Edit Profile Link in a shortcode * * @param $atts, text|class * @example * @return string|void * */ function bbp_edit_profile_link( $atts ) { //If user isn't logged in, return nothing if(!is_user_logged_in()) { return; } else { extract( shortcode_atts( array( 'text' => "", // default value if none supplied 'class' => "" //Style class for link ), $atts ) ); if ( $text ) { $current_user = wp_get_current_user(); $user = $current_user->user_login; return '<a class="' . $class . '" href="/forums/users/' . $user . '/edit">' . $text . '</a>'; } } } add_shortcode( 'bbp_edit_profile', 'bbp_edit_profile_link' );
2020-09-19 1:38 오후 #9450응용: 메뉴 상에서는 링크만 구현되고 메뉴 이름을 ID/Name으로 표현할 수가 없음(menu shortcode이든 사용자 정의이든). Function.php에서 아예 응용을 함. 링크 텍스트를 비워두는 숏코드를 구현함으로 그 빈 곳에 대표 이름(display_name) 채우기.
/** * Generate BBpress Get Profile Link in a shortcode * * @param $atts2, text|class * @example * application: if text empty show display_name * @return string|void * */ function bbp_get_profile_link( $atts2 ) { //If user isn't logged in, return nothing if(!is_user_logged_in()) { return; } else { extract( shortcode_atts( array( 'text' => "", // default value if none supplied 'class' => "" //Style class for link ), $atts2 ) ); if ( $text ) { $current_user = wp_get_current_user(); $user = $current_user->user_login; return '<a href="' . bbp_get_user_profile_url($current_user->ID). '">' . $text . '</a>'; } else { $current_user = wp_get_current_user(); //$user = $current_user->user_login; $display_name = $current_user->display_name; return '<a href="' . bbp_get_user_profile_url($current_user->ID). '">' .'⛯ '. $display_name. '</a>'; } } } add_shortcode( 'bbp_get_profile', 'bbp_get_profile_link' );
2020-10-02 8:39 오전 #9581프로필 에딧 페이지로 진입하는 메뉴를 User Role로 보여주는 방법
아래 숏코드에서 text가 비어 있으면 User Role, 채워져 있으면 채운 그 텍스트가 메뉴
이때 li 태그는 테마에 따라 적용이 안될 수 있음. mimoon에서는 적용됨(닫는 /li는 넣지 않고 열어둔 상태로 마칠 것)./** * Generate BBpress Edit Profile Link in a shortcode * * @param $atts, text|class * @example * application: if text empty show user_role * @return string|void * */ function bbp_edit_profile_link( $atts ) { //If user isn't logged in, return nothing if(!is_user_logged_in()) { return; } else { extract( shortcode_atts( array( 'text' => "", // default value if none supplied 'class' => "" //Style class for link ), $atts ) ); if ( $text ) { $current_user = wp_get_current_user(); $user = $current_user->user_login; return '<a class="' . $class . '" href="/forums/users/' . $user . '/edit">' . $text . '</a>'; } else { $current_user = wp_get_current_user(); $user = $current_user->user_login; //$user_meta = get_userdata($user_id); //$user_roles = $user_meta->roles; /*$current_user = wp_get_current_user(); $allowed_roles = explode(',', $role); if( array_intersect($allowed_roles, $current_user->roles ) ) { return $content; } else { $user_role = array_shift($current_user->roles); return '<a class="' . $class . '" href="/forums/users/' . $user . '/edit">' . $user_role . '</a>'; } */ $user_meta = get_userdata(get_current_user_id()); //$current_user_role_slug = $user_meta->roles[0]; $user_roles = $user_meta->roles; $user_role = array_shift($user_roles); if ($user_role == 'administrator') { $current_user_role_slug = 'Administrator'; $emoti ='♞'; } elseif ($user_role == 'editor') { $current_user_role_slug = 'Editor'; $emoti ='♞'; } elseif ($user_role == 'author') { $current_user_role_slug = 'Author'; $emoti ='♞'; } elseif ($user_role == 'contributor') { $current_user_role_slug = 'Contributor'; $emoti ='♘'; } elseif ($user_role == 'subscriber') { $current_user_role_slug = 'Subscriber'; $emoti ='♘'; } else { $current_user_role_slug = $user_role; $emoti ='♟'; } $user = preg_replace("/[^a-zA-Z0-9]/", "-", $user); return '<li class="menu-item"><a class="' . $class . '" href="/forums/users/' . $user . '/edit">' . $emoti.' '.$current_user_role_slug . '</a>'; //return '<a class="' . $class . '" href="/forums/users/' . $user . '/edit">' . $user . '</a>'; } } } add_shortcode( 'bbp_edit_profile', 'bbp_edit_profile_link' );
2020-10-02 8:41 오전 #9582로그아웃 메뉴는 이것으로 완성
li 태그 주의/* Shortcode to fetch the logout wp_logout_url('/') */ //use function Logout_link( $logout_button ) { //If user isn't logged in, return nothing if(!is_user_logged_in()) { return; } else { extract( shortcode_atts( array( 'text' => "", // default value if none supplied 'class' => "" //Style class for link ), $logout_button ) ); if ( $text ) { return '<li class="menu-item"><a href="' . wp_logout_url('/'). '">' . $text . '</a>'; } } } add_shortcode( 'Logout_link_code', 'Logout_link' );
2020-10-02 8:42 오전 #9583겟 프로필 메뉴는 이것으로 완성
/** * Generate BBpress Get Profile Link in a shortcode * * @param $atts2, text|class * @example * application: if text empty show display_name * @return string|void * li를 준 후 닫지 말 것(테마에 따라 다름)! * */ function bbp_get_profile_link( $atts2 ) { //If user isn't logged in, return nothing if(!is_user_logged_in()) { return; } else { extract( shortcode_atts( array( 'text' => "", // default value if none supplied 'class' => "" //Style class for link ), $atts2 ) ); if ( $text ) { $current_user = wp_get_current_user(); $user = $current_user->user_login; return '<a href="' . bbp_get_user_profile_url($current_user->ID). '">' . $text . '</a>'; } else { $current_user = wp_get_current_user(); //$user = $current_user->user_login; $display_name = $current_user->display_name; return '<a href="' . bbp_get_user_profile_url($current_user->ID). '">' .'⛯ '. $display_name. '</a>'; } } } add_shortcode( 'bbp_get_profile', 'bbp_get_profile_link' );
-
글쓴이글
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
- 답변은 로그인 후 가능합니다.