如何为订阅者创建wordpress自定义设置页面

时间:2014-06-03 13:15:02

标签: wordpress settings user-management

请让我先解释一下我想要完成的事情:

我正在为一个小型的当地公共游泳池建立一个wordpress网站。游泳池仅在天气晴朗时才开放。救生员在早上决定游泳池是否开放。这些信息应易于维护并在网站上可见。

我创建了一个小部件,显示池是否打开。小部件从de wordpress数据库中的自定义表中接收数据。小部件的背景在打开时为绿色,在关闭时为红色,如果救生员尚未做出决定则为橙色。

到目前为止没问题。对救生员我做了一个useraccount登录。他唯一能够设置/修改的是游泳池今天是否开放。不应允许他编辑/发布页面/帖子或在仪表板上查看任何其他内容。

所以我的想法是让救生员成为“订户”。但现在我正在努力如何访问'打开或不打开选项的设置页面。在哪里制作这个设置页面?

第一个想法:在后端使其可用,但我如何确保它可用于订阅者?

第二个想法:让它在前端可用。但是,我怎么能这样做呢?

有没有人做过这样的事情?有人能指出我的解决方案吗?

谢谢! LUC

3 个答案:

答案 0 :(得分:1)

为了使事情尽可能干净,我会注册一个新的自定义lifeguard角色和一个open_pool功能,并将其分配给该角色。你会给你所有的救生员lifeguard角色。

然后,您可以使用以下方法向前端或后端添加对话框:

if (current_user_can ( 'open_pool' ) {
   print $pool_open_close_form;
}

要开始使用,请查看this WPSE threadRoles 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)

您可以使用Adminimizehttps://wordpress.org/plugins/adminimize/)这样的插件来显示救生员的一些菜单功能,以更改池的状态并删除所有其他帖子/页面相关的菜单项。