我尝试加载样式表是用户角色是订阅者,我做错了什么:
<?php
global $current_user;
get_currentuserinfo();
if ( user_can( $current_user, "subscriber" ) ){
echo '<link rel="stylesheet" href="/login/subscriber-style.css">'
}
?>
这是主题的header.php
答案 0 :(得分:2)
您正在使用过时的获取当前用户角色的方法。 WordPress 4.5中已弃用get_currentuserinfo()
。
https://codex.wordpress.org/Function_Reference/get_currentuserinfo
此外,您不应该直接从header.php文件加载CSS,而是需要将其排队。
将以下代码添加到functions.php文件中。
function wpse_load_subscriber_stylesheet() {
if ( current_user_can( 'subscriber' ) ) {
wp_enqueue_style( 'login-subscriber-style', home_url( '/login/subscriber-style.css' ) );
}
}
add_action( 'wp_enqueue_scripts', 'wpse_load_subscriber_stylesheet' );
这假设您的CSS放在您的网络根目录(https://example.com/login/subscriber-style.css)中。如果它在您的主题文件夹中,则需要get_template_directory_uri() . '/login/subscriber-style.css'
。
https://developer.wordpress.org/reference/functions/wp_enqueue_style/