私はwordpressが初めてです、テーブルwp_usermeta
に行があることに気付きました
meta_key meta_value
wp_capabilities a:1:{s:13:"administrator";b:1;}
まず、meta_value a:1:{s:13:"administrator";b:1;}
の意味は何ですか?このフィールドの正確な説明はどこにありますか?あるいはrole
user
Capabilities
についてすべて知っておくべきこと、これらの情報はどこで入手できますか。
次に、コードでwordpress's API
を使って新しいロールを作成する方法を教えてください。
進んでくれてありがとう。
Wp_capabilitiesは値をserilized配列として保存します。phpまたはこの例では http://blog.tanist.co.uk/files/unserialize/ で試すことができます。
コード:
a:1:{s:13:"administrator";b:1;}
です:
Array
(
[administrator] => 1
)
ユーザーが管理者であることを意味します。
関数 add_role を実行してデータベースに新しいロールを追加し、それを実行するのは once !だけにすることができます。
@ Krysiekの回答に加えて、ユーザーメタデータを含むメタテーブルに格納されているデータはシリアル化されていることが多いことを知っておく必要があります。データが実際に何を表しているのか知りたい場合は、PHP関数 unserialize を使用してその値を判断できます。例えば、値a:1:{s:13:"administrator";b:1;}
をunserialize(そして var_dump - 結果を使用)して実行すると、次のようになります。
array(1) {
["administrator"]=>
bool(true)
}
options
テーブルとpost_meta
テーブルにも同じ種類のエントリがあります。
ただし、これらのテーブルに直接書き込むことは避けてください。ユーザーに関するデータを保存してアクセスするためのWordPress機能があります。たとえば、ユーザーメタテーブルからデータを読み込むには get_user_meta を使用し、書き込むにはWordPress関数 update_user_meta を使用する必要があります。 post_metaおよびoptionsテーブルにも同様の機能があります。
meta_value
は、メタフィールドの値を格納する列です。各meta_fieldはキーと値を含みます。
ロールと機能に関するこのコーデックスの記事はあなたに役立つはずだと思います: http://codex.wordpress.org/Roles_and_Capabilities
カスタムロールを追加するにはadd_role
関数( http://codex.wordpress.org/Function_Reference/add_role )を使うべきです
そしてCodexからそれを使用する例:
$result = add_role('basic_contributor', 'Basic Contributor', array(
'read' => true, // True allows that capability
'edit_posts' => true,
'delete_posts' => false, // Use false to explicitly deny
));
if (null !== $result) {
echo 'Yay! New role created!';
} else {
echo 'Oh... the basic_contributor role already exists.';
}
テーブルwp_usermetaのキー "wp_capabilities"は、ユーザーの役割と$user->add_cap('my_capability');
によってそのユーザーに追加された機能を識別する配列の直列化表現を識別します。ありがとう spaul !
WordPressチームは、 "機能"が実際には特定の役割を担うユーザーのためにまとめられたものであることに気づく前に、フィールド[prefix] _capabilitiesに名前を付けました。キーの値を[prefix] _capabilitiesから[prefix] _rolesに変更すると、WordPress自体の巨大なリファクタリングが必要になるだけでなく、非常に多くのサードパーティ製プラグインが混乱することになります。
このため、wp_capabilitiesのusermetaキーはユーザーロールを保持しており、古い名前を使用することを想定しているソフトウェアがそれほど多くない場合は、wp_rolesという名前になります。
この事実は新しいWordPressの愛好家にとって非常に役に立つので、WordPressの役割(または機能)について何か言うことがある人は誰でも、ユーザーの役割がusermetaテーブルの下にシリアル化されている配列にリストされているという事実について前倒しでお勧め[prefix] _capabilitiesキー.
wp_usermeta
テーブルでは、新しいユーザーを作成している間にユーザーに関する追加情報を保存するか、既存のユーザーのプロファイルを更新することができます。
wp_usermeta
テーブルには列名meta_key
があります。ここで値を保存することができます。このフィールドを通じて、そのフィールドの値をget
またはupdate
にすることができます。
add_user_meta( 'user_id', 'meta_key', 'meta_value')
これを使って、meta_key='meta_key'
を持つテーブルにメタ値を追加できます。get_user_meta('user_id', 'meta_key', true)
この関数を使うことで、meta_key = 'meta_key'
を持つユーザーの値を取得できます。update_user_meta( 'user_id, 'meta_key', 'meta_value')
この関数を使ってメタ値を更新できます。delete_user_meta( 'user_id', 'meta_key')
これを使ってuserのメタ値を削除できます。
ユーザがMiddle name
フィールドを保存したい場合は、wp_usermata
を持つmeta_key=middle_name
に保存し、これらの関数を使用してmeta_value=value
に値を保存します。
ロールは、Webサイト内でそのようなアクセス権しか持たないというユーザーに与えられたアクセスポリシーのようなものです。ロールを追加、削除することができます。
機能は、機能の追加や役割の制限に似ています。例えば、2つの役割 'gold-role'、 'platinum-role'があります。私たちは、彼が投稿を追加することはできますが投稿を公開することはできませんが、彼が投稿を公開することができる機能を追加することができる「プラチナロール」に制限することができます。ロールに関連する機能を追加または削除することもできます。投稿のメタボックスに制限を追加することもできます。
詳細については、 役割と機能 を参照してください。
ロールを追加し、その機能を wordpress API で設定できます。あるいは、プラグインを使用してこれを実行できます。私の意見では Advanced Access Manager はロールと機能を処理するための最良のプラグインです。