Je suis nouveau sur Wordpress, dans la table wp_usermeta
Je remarque que nous avons une ligne
meta_key meta_value
wp_capabilities a:1:{s:13:"administrator";b:1;}
Tout d’abord, quelle est la signification de meta_value a:1:{s:13:"administrator";b:1;}
, où puis-je trouver l’explication exacte de ce fichier? Ou je peux tout savoir sur la role
user
Capabilities
, où puis-je obtenir ces informations.
Deuxièmement, comment puis-je créer de nouveaux rôles via wordpress's API
par code
Merci d'avance.
Wp_capabilities enregistre la valeur sous forme de tableau sérilisé. Vous pouvez l'essayer dans votre php ou pour cet exemple ici: http://blog.tanist.co.uk/files/unserialize/ .
Le code:
a:1:{s:13:"administrator";b:1;}
Est:
Array
(
[administrator] => 1
)
Ce qui signifie que l'utilisateur est un administrateur.
Vous pouvez ajouter de nouveaux rôles à la base de données en exécutant la fonction add_role , et ne l'exécutez que une fois!
En plus de la réponse de @ Krysiek, vous devez savoir que les données stockées dans les méta-tables, y compris les métadonnées de l'utilisateur, sont souvent sérialisées. Si vous souhaitez savoir ce que les données représentent réellement, vous pouvez utiliser la fonction PHP unserialize pour déterminer sa valeur. Par exemple, l'exécution de la valeur a:1:{s:13:"administrator";b:1;}
via unserialize (puis var_dump - ing les résultats) produit ceci:
array(1) {
["administrator"]=>
bool(true)
}
Vous trouverez les mêmes types d'entrées dans la table options
ainsi que dans la table post_meta
.
Cependant, vous devriez éviter d'écrire directement dans ces tables. Il existe des fonctions WordPress qui vous permettent de stocker et d'accéder à des données sur les utilisateurs. Par exemple, pour lire les données de la table méta utilisateur, vous devez utiliser get_user_meta et pour écrire, vous devez utiliser la fonction WordPress update_user_meta . Des fonctions similaires existent pour post_meta et les tables d'options.
meta_value
est une colonne pour stocker la valeur du champ méta. Chaque méta_field contient la clé et la valeur.
Je pense que cet article du Codex sur les rôles et les fonctionnalités devrait vous aider: http://codex.wordpress.org/Roles_and_Capabilities
Pour ajouter des rôles personnalisés, vous devez utiliser la fonction add_role
( http://codex.wordpress.org/Function_Reference/add_role )
Et un exemple d'utilisation du 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.';
}
La clé "wp_capabilities" de la table wp_usermeta identifie la représentation sérialisée d'un tableau identifiant les rôles d'un utilisateur et toutes les fonctionnalités ajoutées à cet utilisateur avec $user->add_cap('my_capability');
. Merci spaul !
L'équipe WordPress a nommé le champ [préfixe] _capabilities avant de se rendre compte que les "capacités" étaient en réalité des éléments regroupés pour les utilisateurs remplissant un rôle particulier. Changer la valeur de la clé de [prefix] _capabilities en [prefix] _roles perturberait un trop grand nombre de plugins tiers et nécessiterait une refactorisation considérable dans WordPress même.
Pour cette raison, il est prudent de dire que la clé usermeta wp_capabilities contient les rôles d'utilisateur et serait nommée wp_roles s'il n'y avait pas déjà autant de logiciels utiles qui l'attendaient sous l'ancien nom.
Parce que ce fait est très utile pour les nouveaux passionnés de WordPress, je recommande à tous ceux qui ont quelque chose à dire sur les rôles (ou fonctionnalités) de WordPress à être très au courant du fait que les rôles des utilisateurs sont répertoriés dans un tableau sérialisé dans la table usermeta sous la clé [préfixe] _capabilities.
Dans la table wp_usermeta
, nous pouvons enregistrer les informations supplémentaires relatives à un utilisateur lors de la création d'un nouvel utilisateur ou de la mise à jour d'un profil d'utilisateur existant.
Dans la table wp_usermeta
, il y a un nom de colonne meta_key
où nous pouvons enregistrer la valeur grâce à laquelle nous pouvons get
ou update
la valeur de ce champ par exemple.
add_user_meta( 'user_id', 'meta_key', 'meta_value')
En utilisant ceci, nous pouvons ajouter la méta-valeur dans la table ayant meta_key='meta_key'
.get_user_meta('user_id', 'meta_key', true)
en utilisant cette fonction, nous pouvons obtenir la valeur de cet utilisateur ayant meta_key = 'meta_key'
.update_user_meta( 'user_id, 'meta_key', 'meta_value')
Cette fonction permet de mettre à jour la méta-valeur.delete_user_meta( 'user_id', 'meta_key')
en utilisant ceci, nous pouvons supprimer la méta-valeur de l'utilisateur.
Si vous souhaitez enregistrer le champ Middle name
pour les utilisateurs, sauvegardez-le dans wp_usermata
avec meta_key=middle_name
et enregistrez la valeur dans meta_value=value
en utilisant ces fonctions.
Le rôle est comme la politique d'accès donnée à un utilisateur qu'il n'a qu'un accès limité sur le site Web. Vous pouvez ajouter ou supprimer un rôle.
Les fonctionnalités, c'est comme ajouter des fonctionnalités ou restreindre un rôle. Par exemple, il existe 2 rôles "rôle or", "rôle platine". Nous limitons le "rôle en or" qu'il peut ajouter, mais ne publie pas le message, mais en "rôle de platine", nous ajoutons une fonctionnalité lui permettant de publier un message. Nous pouvons également ajouter ou supprimer des fonctionnalités liées à un rôle. Vous pouvez également ajouter une restriction sur les métaboxes de publications.
Pour plus d'informations, suivez Rôle et capacités
Vous pouvez ajouter un rôle et définir ses fonctionnalités via wordpress API ou Vous pouvez utiliser des plugins pour ce faire. À mon avis Advanced Access Manager est le meilleur plug-in pour la gestion des rôles et des fonctionnalités.