web-dev-qa-db-fra.com

Les abonnés deviennent-ils des auteurs après la mise à niveau?/Mise à jour en masse des utilisateurs?

J'ai un site avec environ 30 000 utilisateurs, et la grande majorité a le rôle 'subscriber' sur le blog principal. Après la mise à niveau de WPMU 2.9.2 vers WordPress 3.0.1, j'ai remarqué que les 30 000 utilisateurs apparaissent dans la liste déroulante du blog principal "Auteur" dans le post-new.php. . (Eh bien, c'est s'il parvient à se charger sans planter le navigateur ...) .

Pour préciser: les utilisateurs ont toujours un accès au niveau abonné, mais sont inclus dans la liste déroulante "Auteur" .

Avant de plonger dans les entrailles de /wp-admin/, quelqu'un d'autre a-t-il déjà vu cela? Est-ce que quelqu'un sait si ce comportement est un changement intentionnel dans WordPress?

Merci Béthanie

1
Bee

Bonjour @ Abeille :

Je ne sais pas pourquoi c'est arrivé. Mais si je comprends bien votre problème, vous devez redéfinir ces enregistrements utilisateur sur 'subscriber' au lieu de 'author', n'est-ce pas?

Normalement, je ne recommanderais pas la mise à jour directe SQL comme celle-ci, mais étant donné la nature du problème et son caractère ponctuel, je pense que tout ira bien.

Mais d’abord SAUVEZ VOTRE BASE DE DONNÉES avant d’essayer quoi que ce soit.

Voici le code SQL à exécuter basé sur ce que je connais des éléments internes de WordPress et également sur cette question de support (cela suppose que le Le préfixe de vos tables principales est 'wp' et suppose également que vous êtes en mesure de définir tous les utilisateurs assignés avec 'author' en abonné et d'apporter manuellement les corrections nécessaires à l'aide de la console d'administration WordPress.) Si vous savez comment exécuter ce code SQL depuis un outil de requête SQL, allez-y:

UPDATE 
  wp_usermeta 
SET 
  meta_value='a:1:{s:10:"subscriber";s:1:"1";}'
WHERE 1=1
  AND meta_key='wp_capabilities' 
  AND meta_value LIKE '%author%'

Si vous n'êtes pas habitué à exécuter SQL à partir d'outils de requête, vous pouvez le déposer dans la racine de votre site Web (appelez-le /update-users.php ou similaire), puis exécutez-le en appelant l'URL http://example.com/update-users.php à partir de votre navigateur (en remplaçant bien sûr http://example.com par votre domaine de site actuel):

<?php
include "wp-load.php";
global $wpdb;
$sql =<<<SQL
UDPATE
  wp_usermeta
SET
  meta_value='a:1:{s:10:"subscriber";s:1:"1";}'
WHERE 1=1
  AND meta_key='wp_capabilities'
  AND meta_value LIKE '%author%'
SQL;
$wpdb->query($sql);
echo 'Done!';

P.S. Veuillez nous faire part de votre succès ou de toute aide supplémentaire.

2
MikeSchinkel