web-dev-qa-db-ja.com

ユーザー固有の管理ユーザーページを作成する方法

目的は、提案されたサイトが顧客にログインし、フロントエンドページではなくプライベートで顧客固有のADMINページを表示できるようにすることです(これを実現するのははるかに簡単です)。

このページには、サイト管理者がアドホックに追加できるユーザーメタとコンテンツが表示されます。

私はメニュー項目、ページを作成し、ユーザー・メタを追加することができると確信しています。顧客ごとにADMINページを実際に非公開にすることになると私の理解は失敗するようです。管理者によるページ。

私がよりよく理解することができるように任意のポインタ、または確かに部分的にこれらの機能を持っているプラ​​グインは大いに感謝されるでしょう。

ありがとう

ジョン

2
John

新しいページを追加するには add_(sub)menu_page(); を使います。この場合、WordPressはかなり親切で、これを回避するのに役立つ多数のフック、フィルタ、および高レベルのAPI関数を提供します。

add_users_page(); を使ってadmin_menuにフックしましょう。

プラグインの例

スラッグとしてuser_loginを持つ管理ページを追加します。

単にこれをあなたのpluginsフォルダにドロップして、これがあなたが探しているものであるかどうかを確かめるためのテストをしてください。

<?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>";
}
2
kaiser