我正在嘗試僅針對我的訂閱者用戶角色授予特定頁面的訪問權限,如果其他具有訂閱者角色或非角色用戶的其他人想要訪問此頁面,則將他們重定向到自定義登錄頁面,我嘗試使用以下代碼段,但我認為它有問題,你能幫我解決這個問題嗎
示例:限制對特定頁面的訪問
add_action( 'template_redirect', function() {
// Get global post
global $post;
// Prevent access to page with ID 1052
$page_id = 1052;
if ( is_page() && ( $post->post_parent == $page_id || is_page( $page_id ) ) ) {
// Set redirect to true by default
$redirect = true;
// If logged in do not redirect
// You can/should place additional checks here based on user roles or user meta
if ( current_user_can( 'subscriber' ) || !is_user_logged_in()) {
$redirect = false;
}
// Redirect people without access to login page
if ( $redirect ) {
wp_redirect( get_site_url().'/custom-url-login' ); exit;
}
}
} );
uj5u.com熱心網友回復:
你可以像這樣重構你的代碼:
add_action( 'template_redirect', 'checking_current_user' );
function checking_current_user()
{
global $post;
global $current_user;
$page_id = 1052;
if (
( $post->post_parent == $page_id || is_page( $page_id ) )
&&
( !in_array('subscriber', $current_user->roles) )
)
{
wp_safe_redirect( site_url('/custom-url-login') );
exit;
}
}
這個答案已經過測驗并且作業正常!
uj5u.com熱心網友回復:
這不會做你所要求的嗎?
// If user role 'subscriber' & logged in do not redirect
// You can/should place additional checks here based on user roles or user meta
if ( current_user_can( 'subscriber' ) && is_user_logged_in()) {
$redirect = false;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/344530.html
標籤:php WordPress的 重定向 求购 自定义wordpress-pages
上一篇:JavaScript BOM三大系列 :offset、client、scroll 區別以及常見屬性
下一篇:使用引數回應重定向
