有个需求,朋友网站需要更换友情链接,把整个网站交给别人,不是很放心。问我能不能,只给予添加友情链接的权限。我看了下程序,是wordpress。感觉好办多少了。
这里把操作的步骤整理一下。这里需要注意的是,wpcli 需要自己安装。一般的空间是不支持的。这个网站刚好是在一台独立的服务器上。
启用友情链接
functions.php -- 一行代码开启友情链接
add_filter( 'pre_option_link_manager_enabled', '__return_true' );
wordpress 默认这个功能是关闭的,需要开启。
查找相关的权限
管理有有高的权限,查找关于链接的权限
wp cap list administrator | grep "links"
manage_links
增加一个角色,这个角色仅仅用来管理友链
# wp role create <role-key> <role-name> [--clone=<role>]
wp role create link Link
角色授权
# wp cap add <role> <cap>... [--grant]
wp cap add link manage_links
创建用户
wp user create senlin senlin@liuhaolin.com --user_pass=123456
把用户添加相应的角色,就会获得该角色的权限
# wp user add-role <user> <role>
wp user add-role senlin link
之后用新建的用户senlin登陆wordpress后台,就可以看到,用户senlin具有操作友情链接的权限。
登陆后直接跳转
function my_login_redirect( $redirect_to, $request, $user ) {
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
if ( in_array( 'link', $user->roles ) ) {
return home_url(). '/wp-admin/link-manager.php';
}
}
return $redirect_to;
}
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );