Page d'accueil » WordPress » Recherche en masse et remplacement de bases de données WordPress - The Easy Way

    Recherche en masse et remplacement de bases de données WordPress - The Easy Way

    Il y a plusieurs occasions où nous devons changer les URL dans notre base de données de site Web WordPress. Par exemple, nous devons le faire après avoir migré une base de données WordPress depuis un site, par exemple. du http://acme.com site de production distant, au http://acme.dev site de développement local sur notre ordinateur.

    WordPress.org héberge un grand nombre de plugins, tels que WP DBManager et WP Migrate DB. Il existe également un certain nombre d’outils tiers permettant de: base de données d'importation facilement. La partie délicate est d'avoir à changer chaque instance d'URL à l'intérieur de la base de données.

    Après la migration de la base de données, les URL à l'intérieur pointe encore sur l'ancien site, dans ce cas à acme.com. Vous pouvez trouver l’ancienne URL dans le wp_options table, définie comme la valeur du URL du site et maison options, et il est probablement également intégré dans plusieurs autres lignes et tables de la base de données. Ces anciennes URL peuvent éventuellement empêcher votre site de fonctionner correctement. Vous devez donc: les changer à la nouvelle URL, dans notre exemple à acme.dev.

    IMAGE: Sequel Pro, recherche de la valeur de la base de données

    À ce stade, accédez à notre site de développement à l'adresse acme.dev mènera simplement à une page blanche.

    Alors, comment pouvons-nous changer toutes ces URL dans la base de données?

    Exécuter une requête SQL

    Habituellement, les gens exécutent la requête SQL suivante qui remplace les valeurs du URL du site et maison options dans le wp_options table.

     UPDATE wp_options SET valeur_option = remplacer (valeur_option, 'http://acme.com', 'http://acme.dev') WHERE nom_option = 'accueil' OU nom_option = = 'siteurl'; 

    Par la suite, ils utilisent une autre requête SQL pour remplacer toutes les occurrences d’URL dans le répertoire. wp_posts table, à savoir dans le Publier un contenu colonne de chaque rangée.

     UPDATE wp_posts SET post_content = replace (post_content, 'http://acme.com', 'http://acme.dev'); 

    L'exécution de ces requêtes est une solution viable, mais en même temps, ce n'est pas pratique à faire. Cela pourrait même être éprouvant pour les nerfs de voir comment la base de données pourrait tourner en rond en raison d'un simple oubli dans la requête.

    Utilisation de WP-CLI

    Une autre voie que nous pouvons faire, et que j’ai trouvée être une alternative plus pratique, est de tirer parti de la ligne de commande WP-CLI. Cela signifie que vous devrez installer WP-CLI.

    En supposant que vous avez installé WP-CLI et que vous avez le wp commande accessible en tant qu'alias, accédez au répertoire où résident les fichiers de votre site WordPress.

    Ensuite, exécutez la commande suivante:

    wp rechercher-remplacer 'http://acme.com "http://acme.dev

    Le premier paramètre, 'http://acme.com', est-ce que l'ancienne entrée doit être remplacée par la deuxième, 'http://acme.dev'.

    La ligne de commande va chercher dans toutes les tables de la base de données, non seulement le Publier un contenu colonne et wp_options table et remplacer chaque instance de l'entrée passée par les paramètres de la commande.

    Comme vous pouvez le voir sur la capture d'écran ci-dessus, un total de 225 remplacements ont été effectués. Et nous l'avons fait par une simple ligne de commandement.

    Je pense qu’il convient de mentionner que nous pouvons utiliser le wp rechercher-remplacer commande, non seulement pour remplacer les URL, mais tout élément de valeur stockés dans la base de données aussi bien. Nous pouvons également limiter l'opération à une certaine table en passant le nom de la table en tant que quatrième paramètre, comme suit:

    wp recherche-remplace '.jpg ".webp' wp_posts

    En exécutant la commande ci-dessus, il ne cherchera que dans wp_posts, la table qui stocke notre contenu - articles, pages, etc. - et remplace l'extension de l'image de .jpg à .webp.

    WP-CLI rend une opération SQL enchevêtrée plus intuitive, et vous pouvez l'utiliser de manière plus pratique. Si vous souhaitez affiner vos commandes, consultez la documentation de WP-CLI, qui vous fournit une liste d'options pour effectuer une opération plus avancée avec wp rechercher-remplacercommander.