如果需要更改使用的模板,可以使用template_include
过滤器(使用模板文件的正确文件名更改“itermediate template.php”和“page.php”):
add_filter( \'template_include\', \'cyb_exclude_template_for_editors\', 99 );
function cyb_exclude_template_for_editors( $template ) {
$user = wp_get_current_user();
if( in_array( "editor", (array) $user->roles ) && is_page_template( "itermediate-template.php" ) ) {
$new_template = locate_template( array( \'page.php\' ) );
if ( \'\' != $new_template ) {
return $new_template ;
}
}
return $template;
}
如果需要将用户重定向到其他页面,可以使用
template_redirect
过滤器:
add_action( \'template_redirect\', \'cyb_redirect_editors_from_page_template\' );
function cyb_redirect_editors_from_page_template() {
$user = wp_get_current_user();
if( in_array( "editor", (array) $user->roles ) && is_page_template( "itermediate-template.php" ) ) {
//Redirect to home, change to fit your needs
wp_redirect( home_url() );
exit();
}
}