如何创建特定于用户的管理员用户页面?

时间:2012-09-23 作者:John

其目的是让提议的站点能够让客户登录并能够查看专用和客户特定的管理页面,而不是前端页面(尽管这将更容易实现)。

该页面将显示用户元和网站管理员可以临时添加的内容。

我有信心能够创建菜单项、页面并填充用户meta,但我的理解似乎失败了,因为它实际上是在逐个客户的基础上将所述管理页面私有化,以及管理员向这些页面添加内容的打赌方式。

任何能让我更好理解的指针,或者确实是部分具有这些功能的插件,都将不胜感激。

谢谢

约翰

2 个回复
SO网友:kaiser

您可以使用添加新页面add_(sub)menu_page();. WordPress在这种情况下非常友好,它提供了大量的挂钩、过滤器和更高级别的API函数来帮助您解决这个问题。

让我们使用add_users_page(); 并钩住admin_menu.

示例插件它添加了一个管理页面,该页面具有user_login 作为slug。

只需将其放入您的插件文件夹中,并对其进行测试,看看这是否是您正在寻找的内容。

<?php
! defined( \'ABSPATH\' ) AND exit;
/* Plugin Name: (#66004) »kaiser« Add private User admin page */

// Add the admin page
function wpse66004_add_users_page()
{
    global $current_user;

    add_users_page(
        // $page_title
         \'Your data\'
        // $menu_title
        ,\'Private Page\'
        // $capability
        ,\'read\'
        // $menu_slug
        ,$current_user->user_login
        ,\'wpse66004_render_users_page\'
    );
}
add_action( \'admin_menu\', \'wpse66004_add_users_page\' );

// Render the users private admin page
function wpse66004_render_users_page()
{
    global $current_user;

    if ( ! current_user_can( \'read\', $current_user->ID ) )
        return;

    echo "<h1>Hello World!</h1><p>And, of course, hello {$current_user->display_name} too!</p>";
}

SO网友:2hamed

在我看来,你最好的办法就是干涉Custom User Roles. 通过创建不同的用户功能,您可以使用此选项来控制哪个用户可以看到什么,从这一点来看,只需为每个用户角色创建不同的选项页面。

结束

相关推荐

将check_admin_referer与主题选项和options.php一起使用

如果我按照法典建议的方式设置主题选项页面(http://codex.wordpress.org/Creating_Options_Pages)然后我的表单提交到“选项”。php’。settings_fields 创建一个nonce,如果我正在创建自己的提交页面,将使用该nonce进行检查check_admin_referer.那么我的问题是。。。。如果我使用选项。php作为我的“表单处理器”,这是否意味着我不能使用check_admin_referer?谢谢Nick