web-dev-qa-db-fra.com

quelle est la signification du champ wp_capabilities dans la table wp_usermeta

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 roleuserCapabilities, 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.

6
diligent

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!

8
Pontus Abrahamsson

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.

4
cale_b

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.';
}
1
Krzysiek Dróżdż

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.

1
Dave Scotese

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.

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.

0
ksr89