On m'a assigné pour éditer les URL canoniques (rel = "canonique" trouvées dans la tête) d'environ 600 publications sur le site d'un client. Tous les messages n'utiliseront pas la même URL canonique. Ni sont ces 301 ou 302. On me dit de ne pas utiliser de plug-in, car je devrais éditer chaque article un à la fois. Voici les étapes générales que je prévois de suivre:
Ceci est le tutoriel que je suis pour ces étapes .
Mes questions sont les suivantes: en utilisant phpMyAdmin, quelle table est utilisée pour stocker ces URL, et comment s'appelle-t-elle exactement? Et, est-ce que quelqu'un a déjà fait ce genre de montage?
Le site est actuellement sur WordPress 3.9.x (la mise à jour de leur site dans une version plus récente ne relève pas de notre travail.)
Aidez-moi, s'il vous plaît!
Descendre et téléverser des fichiers CSV est une opération difficile qui vous oblige à effectuer manuellement une série d'étapes sujettes aux erreurs humaines (et aux fautes de frappe). Ma suggestion serait de faire quelque chose que vous pouvez battre localement dans une copie locale de votre base de données. Étapes à suivre:
mysqldump
et utilisez scp
pour le copier localement }wp post update
avec les commandes nécessaires localementAssurez-vous que vous avez un moment où personne ne tripote la base de données (placez votre site en mode maintenance!).
Notes:
A)Si vous connaissez l'adresse IP et le port de votre serveur MySQL, vous pouvez vous connecter directement à celui-ci et lancer le vidage sur votre machine sans que SSH ne soit inséré dans le périphérique distant:
mysqldump -P3306 -h127.0.0.1 -uroot -pYourPassWord databasename > ./dbdumps
L'illustration ci-dessus le videra dans un sous-dossier de votre répertoire actuel (pwd
) nommé dbdumps
. Vous devriez le créer à l'avance.
B)En supposant que vous ayez Bash disponible (la ligne de commande - sh suffira quand même, sinon, vous pouvez utiliser quelque chose comme le script suivant. Ajoutez-le à un fichier nommé convert.sh
. En supposant également que vous ayez WP CLI installé localement (ou votre machine Vagrant, le conteneur Docker, quel que soit l'environnement de développement que vous utilisez localement):
#!/usr/bin/env bash
for id in $(wp post list --field=ID);
do
wp post update $id --post_name=foobar
done
Comme vous n'avez pas détaillé cette conversion pour vos messages slug, vous devrez trouver un moyen de régler foobar
dans l'exemple ci-dessus. Il y a des dizaines de réponses Stackoverflow sur la rubrique tag: bash pour vous aider. Comme d'habitude (sed
pour le sauvetage } _ - il n'y a rien au monde qui ne puisse être corrigé avecawk
ET sed
dans un script Shell.
Vous pouvez exécuter le script Shell ci-dessus comme suit depuis votre terminal:
sh convert.sh
Essayez, échouez, rincez et répétez .
J'ai écrit ça surtout dans ma tête, vous devrez donc le tester. Mieux vaut faire une copie de votre base de données locale afin de pouvoir la lancer à nouveau.