
Joseph Goodman
0
3754
612
Posséder et gérer un blog WordPress est très amusant, surtout lorsque vous vous lancez pour la première fois. Concevoir le site ou choisir un thème intéressant et rédiger ces premiers articles en prévision de l’énorme essaim de personnes qui, vous en êtes certain, se dirigent vers vous. La réalité ne tarde pas à frapper la cible, et avant de vous en rendre compte, vous n’aimez pas le thème, le flux de visiteurs n’est qu’un filet, et vous réalisez que votre hébergeur n’a pas tout à fait la puissance dont vous avez besoin..
Développer un blog prend des années, et beaucoup de peine et de lutte - je suis sûr que Aibek en témoignerait. Ensuite, il y a les transitions majeures, quand on se rend compte qu'il faut faire des changements majeurs, et que ça va prendre beaucoup de travail.
J'ai dû apporter un certain nombre de changements majeurs à mon propre blog, mais l'un des plus difficiles est dû au fait que j'avais utilisé une méthode manuelle pour insérer des publicités Google dans les articles de mon blog..
Changer de publication avec une seule commande SQL
Le problème est qu’après plusieurs années d’exécution du blog, près de 1 000 messages contenant cette annonce Google ont été insérés manuellement. Si je voulais faire un changement, il y aurait mille articles à éditer..
Je souhaitais utiliser le complément de modèle in-post intéressant que j'ai écrit en 2010. Cela automatiserait l'insertion d'annonces, mais si je l'utilisais sans supprimer toutes les annonces existantes, je me retrouverais avec deux annonces dans les anciens articles.
Pour supprimer l'ancienne annonce, je devais effectuer un peu de magie SQL, et je vais vous en parler aujourd'hui. L'action se déroule dans phpMyAdmin, et vous devrez sélectionner la base de données de votre blog dans le menu de gauche..
Le code que vous allez utiliser pour supprimer des sections de votre contenu sera dans la balise SQL. Ce que je veux dire par là, c'est le code que je vais vous montrer, vous pourrez l'utiliser pour supprimer tout contenu existant sur plusieurs articles de blog, de 2 à 200 - ou plus. La seule exigence est que ce que vous souhaitez supprimer doit avoir un texte de début commun et un texte de fin, comme dans le cas d'une annonce Google, avec une balise de début et une balise de fin communes..
C’est à quoi mes entrées de blog les plus récentes ressemblent, l’annonce insérée manuellement juste après la “plus” tag sur chaque page, aligné à droite.
La présentation de ce code sur la page se présente comme suit:
Comme vous pouvez le voir, j'ai un “type de script” balise de démarrage que je peux utiliser au début de chaque annonce, et un “script src” balise que je peux utiliser à la fin.
Alors, voici comment cela fonctionne. Vous devez dire le SQL “mettre à jour” commande que vous voulez effacer complètement ce bloc de votre page. Vous aurez besoin de comprendre trois fonctions de base de MySQL - remplacer, sous et Localiser.
Tout d'abord, utilisez LOCATE pour indiquer à la commande les emplacements des points de départ et d'arrivée. Dans mon cas, j'utilise les chaînes au début et à la fin de la section que je veux supprimer. La position de départ sur la page de début est:
LOCATE ('', post_content)
L'emplacement final est plus compliqué. Locate vous donne le début de la chaîne, vous devez donc ajouter le nombre de caractères à la fin de la chaîne pour obtenir l'emplacement de fin..
LOCATE ('", post_content) + 93
Ensuite, vous allez avoir besoin de dire à la “REMPLACER” fonctionne exactement le texte que vous souhaitez remplacer. Pour ce faire, vous extrayez la chaîne réelle du contenu de l'article à l'aide de la fonction SUBSTR. Vous devez lui indiquer le lieu de départ (que vous avez maintenant) et sa longueur. La longueur que vous devez calculer en soustrayant la position de départ de la dernière position (que vous avez également).
Voici à quoi cela ressemble, avec le code ci-dessus inséré dans la fonction SUBSTR:
substr (post_content, localise ('', post_content)), ((localise ('', post_content)) + 93) - (localise ('', post_content))))
Ça a l'air fou, non? Mais si vous regardez attentivement, vous verrez qu'il y a trois sections intégrées: publier le contenu, l'emplacement de départ et la longueur..
Maintenant que vous avez le texte exact que vous souhaitez supprimer de vos publications, tout ce que vous avez à faire est de dire à la fonction REPLACE de la remplacer par un espace. Il suffit de copier le code ci-dessus dans la commande suivante:
UPDATE wp_posts SET post_content = replace (post_content, string_to_replace, replacement_string);
Comme ça:
UPDATE wp_posts SET post_content = REPLACE (post_content, substr (post_content, localiser ('', post_content)), ((localiser ('', post_content)) + 93) - (localiser ('', post_content))), ");
En exécutant le script ci-dessus, si toute la syntaxe est correctement alignée, vous devriez voir les résultats positifs suivants dans phpAdmin.
Maintenant, quand je recharge les messages dans mon navigateur Web - le tour est joué! La publicité a été enlevée comme par magie.
Ne vous méprenez pas, cela n'a pas fonctionné avec toutes les annonces, car certaines de mes annonces plus anciennes avaient un format légèrement différent au début et à la fin. Comme cette page.
Mais avec un peu de peaufinage, juste en changeant les balises précises pour le début / la fin, j'ai été en mesure de réexécuter le code SQL et de l'effacer également..
Cette technique fonctionnera pour supprimer tout contenu du contenu de votre publication WordPress. C'est la beauté d'avoir les articles dans une base de données MySQL, vous pouvez simplement exécuter des commandes SQL pour manipuler des milliers d'articles en même temps, ce qui vous épargne un travail manuel considérable.. Assurez-vous simplement de sauvegarder votre base de données avant de commencer.!
Avez-vous d'autres utilisations intéressantes pour cette commande SQL? Essayez votre propre base de données WordPress et voyez à quel point cela fonctionne pour vous. Partagez vos expériences et commentaires dans la section commentaires ci-dessous.
Crédits image: Shutterstock