我尝试结合两个条件:is\\u page和current\\u user\\u can,但没有成功。
在StackExchange上找到了一个说明用户角色的示例。但是Wordpress codex说“不要将角色名称传递给当前的\\u user\\u can(),因为这不能保证正常工作。”在同一页上,包含此链接以供参考/进一步阅读:http://docs.appthemes.com/tutorials/wordpress-check-user-role-function/
我尝试修改该代码,并将其添加到我的函数中。php
function plastics_check_user_role( $role, $user_id = null ) {
if ( is_numeric( $user_id ) )
$user = get_userdata( $user_id );
else
$user = wp_get_current_user();
if ( empty( $user ) )
return false;
return in_array( $role, (array) $user->roles );
}
然后,这是我在侧边栏中输入的内容。php文件:
<?php
if (is_page(array(\'page1\')) && plastics_check_user_role(\'Administrator\')) :
echo \'<div class="widget-title">Title 1</div>\' . wp_nav_menu(array(\'theme_location\'=>\'menu1\' ));
elseif (is_page(array(\'page2\'))) :
echo \'<div class="widget-title">Page 2</div>\' . wp_nav_menu(array(\'theme_location\'=>\'menu2\' ));
elseif (is_page(array(\'page 3\'))) :
echo \'<div class="widget-title">Page 3</div>\' . wp_nav_menu(array(\'theme_location\'=>\'menu3\' ));
endif;
?>
仍然不工作。我错过了什么?是因为它在侧边栏中吗?
我更喜欢详细说明角色,而不是指定用户功能,因为我的5个自定义用户角色具有完全相同的功能,但我会根据角色限制页面。(黑客解决方法:我可以为每个角色添加自定义功能,但这似乎是一种奇怪的方式……)