按用户角色从特定管理员 url 重定向到另一个 url
Redirect by user role from a specific admin url to another url
如果我使用 is_front_page 作为当前 page/url,此代码工作正常,因为它获取我的主页并按角色将用户重定向到特定路径,但如果我尝试获取 wp 管理仪表板的特定当前 url,它就不起作用,我尝试使用 get_home_url(path),但它没有工作:
add_action( 'template_redirect', 'role_based_redirect' );
function role_based_redirect() {
if( get_home_url('/wp-admin/current-url') !== false ) { // this doesn't work
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) ) {
wp_redirect( home_url( '/wp-admin/other-url' ) );
exit;
}
}
}
提前致谢。
template_redirect 挂钩用于您网站的前端。对于管理员端,您可以使用不同的挂钩。如init、admin_init等
f.e.
add_action( 'admin_init', 'role_based_redirect' );
function role_based_redirect() {
if( strpos($_SERVER["REQUEST_URI"],'wp-admin/current-url') !== false ) {
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) ) {
wp_redirect( home_url( '/wp-admin/other-url' ) );
exit;
}
}
}
如果我使用 is_front_page 作为当前 page/url,此代码工作正常,因为它获取我的主页并按角色将用户重定向到特定路径,但如果我尝试获取 wp 管理仪表板的特定当前 url,它就不起作用,我尝试使用 get_home_url(path),但它没有工作:
add_action( 'template_redirect', 'role_based_redirect' );
function role_based_redirect() {
if( get_home_url('/wp-admin/current-url') !== false ) { // this doesn't work
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) ) {
wp_redirect( home_url( '/wp-admin/other-url' ) );
exit;
}
}
}
提前致谢。
template_redirect 挂钩用于您网站的前端。对于管理员端,您可以使用不同的挂钩。如init、admin_init等
f.e.
add_action( 'admin_init', 'role_based_redirect' );
function role_based_redirect() {
if( strpos($_SERVER["REQUEST_URI"],'wp-admin/current-url') !== false ) {
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) ) {
wp_redirect( home_url( '/wp-admin/other-url' ) );
exit;
}
}
}