请让我先解释一下我想要完成的事情:
我正在为一个小型的当地公共游泳池建立一个wordpress网站。游泳池仅在天气晴朗时才开放。救生员在早上决定游泳池是否开放。这些信息应易于维护并在网站上可见。
我创建了一个小部件,显示池是否打开。小部件从de wordpress数据库中的自定义表中接收数据。小部件的背景在打开时为绿色,在关闭时为红色,如果救生员尚未做出决定则为橙色。
到目前为止没问题。对救生员我做了一个useraccount登录。他唯一能够设置/修改的是游泳池今天是否开放。不应允许他编辑/发布页面/帖子或在仪表板上查看任何其他内容。
所以我的想法是让救生员成为“订户”。但现在我正在努力如何访问'打开或不打开选项的设置页面。在哪里制作这个设置页面?
第一个想法:在后端使其可用,但我如何确保它可用于订阅者?
第二个想法:让它在前端可用。但是,我怎么能这样做呢?
有没有人做过这样的事情?有人能指出我的解决方案吗?
谢谢! LUC
答案 0 :(得分:1)
为了使事情尽可能干净,我会注册一个新的自定义lifeguard
角色和一个open_pool
功能,并将其分配给该角色。你会给你所有的救生员lifeguard
角色。
然后,您可以使用以下方法向前端或后端添加对话框:
if (current_user_can ( 'open_pool' ) {
print $pool_open_close_form;
}
要开始使用,请查看this WPSE thread和Roles and Capabilities section of the Codex。
答案 1 :(得分:0)
您可以使用wp_get_current_user();
例如,在functions.php
文件中,您可以放置以下内容。
$current_user = wp_get_current_user();
if($current_user->user_login == 'User1') {
function example_add_dashboard_widgets() {
wp_add_dashboard_widget(
'example_dashboard_widget', // Widget slug.
'Example Dashboard Widget', // Title.
'example_dashboard_widget_function' // Display function.
);
}
add_action( 'wp_dashboard_setup', 'example_add_dashboard_widgets' );
function example_dashboard_widget_function() {
// Display whatever it is you want to show.
echo "Hello World, I'm a great Dashboard Widget";
}
}
这将检查用户名匹配' User1'然后会添加仪表板小部件,这意味着它将是救生员登录时看到的第一件事。当然这意味着可能有共享日志如果有多个救生员。
来源:
http://codex.wordpress.org/Function_Reference/wp_get_current_user http://codex.wordpress.org/Dashboard_Widgets_API
答案 2 :(得分:0)
您可以使用Adminimize
(https://wordpress.org/plugins/adminimize/)这样的插件来显示救生员的一些菜单功能,以更改池的状态并删除所有其他帖子/页面相关的菜单项。