Hoe duizenden WordPress-berichten te bewerken met slechts één SQL-opdracht
Het bezitten en uitvoeren van een WordPress-blog is erg leuk, vooral als je voor het eerst aan de slag gaat. De site ontwerpen of een leuk thema uitkiezen, en die eerste paar berichten opschrijven in afwachting van de enorme zwerm mensen waarvan je zeker weet dat ze je tegemoet komen. Het duurt niet lang voordat de realiteit toeslaat, en voordat je het weet, hou je niet van het thema, de bezoekersstroom is niet meer dan een druppeltje, en je realiseert je dat je webhost niet echt de paardenkracht heeft die je nodig hebt.
Het groeien van een blog kost jaren, en heel veel pijn en strijd - ik weet zeker dat Aibek daarvan zou getuigen. Dan zijn er de belangrijkste overgangen, wanneer je je realiseert dat je een aantal grote veranderingen moet aanbrengen, en dat het heel wat werk zal vergen.
Er zijn een aantal grote veranderingen geweest die ik moest maken op mijn eigen blog, maar een van de moeilijkste was vanwege het feit dat ik een bepaalde handmatige methode had gebruikt om Google-advertenties in mijn blogartikelen in te voegen.
Berichten wijzigen met een enkele SQL-opdracht
Het probleem is dat ik na een aantal jaar van het blog bijna 1000 berichten had geplaatst met die Google-advertentie handmatig ingevoegd. Als ik ooit iets wilde veranderen, dan zijn dat duizend berichten die ik zou moeten bewerken.
Ik wilde die coole invoegtoepassing voor in-post-sjablonen gebruiken waarover ik in 2010 schreef. Dit zou het invoegen van advertenties in de toekomst automatiseren, maar als ik het zou gebruiken zonder al die bestaande advertenties te verwijderen, zou ik uiteindelijk twee advertenties in de oude artikelen.
Om de oude advertentie te verwijderen, moest ik een beetje SQL-magie uitvoeren en dat ga ik vandaag met je delen. De actie vindt plaats in phpMyAdmin en u moet de database van uw blog selecteren in het linkermenu.
De code die u gaat gebruiken om delen van uw inhoud te strippen, bevindt zich in de SQL-tag. Wat ik hiermee bedoel, is de code die ik je ga laten zien, je kunt gebruiken om alle inhoud die op meerdere blogposts staat te verwijderen, van 2 tot 200 - of meer. De enige vereiste is dat wat u wilt verwijderen een gemeenschappelijke starttekst en een eindtekst moet hebben - zoals een Google-advertentie heeft een gemeenschappelijke starttag en een eindtag.
Dit is hoe mijn nieuwere blog-items eruit zien, met de advertentie handmatig ingevoegd direct na de “meer” tag op elke pagina, uitgelijnd aan de rechterkant.
De manier waarop deze code op de pagina is ingedeeld ziet er als volgt uit:
Zoals je kunt zien, heb ik een “scripttype” start-tag die ik kan gebruiken aan het begin van elke advertentie, en een “script src” tag die ik aan het einde kan gebruiken.
Dus hier is hoe het werkt. U moet de SQL vertellen “bijwerken” opdracht dat u dat blok van uw pagina volledig wilt wissen. U moet drie standaard MySQL-functies begrijpen - vervangen, substr en bevind zich.
Gebruik eerst LOCATE om aan het commando de locaties van de begin- en eindpunten te vertellen. In mijn geval gebruik ik de tekenreeksen aan het begin en aan het einde van de sectie die ik wil verwijderen. De startlocatie op de pagina van het begin is:
BEVIND ZICH (''