
Peter Holmes
0
4076
32
Vlastnit a provozovat blog WordPress je spousta legrace, zejména při prvním spuštění. Navrhování stránek nebo vybírání skvělého tématu a psaní těch prvních několika příspěvků v očekávání obrovského roje lidí, o kterém jste si jisti, směřují. Netrvá dlouho, než zasáhne realita, a než to víte, nelíbí se vám téma, tok návštěvníků není nic jiného než pramínek a uvědomíte si, že váš webhostitel nemá potřebnou koňskou sílu, kterou potřebujete.
Pěstování blogu trvá roky a spoustu bolesti a boje - jsem si jist, že Aibek o tom svědčí. Pak jsou tu hlavní přechody, když si uvědomíte, že musíte provést nějaké velké změny, a bude to vyžadovat spoustu práce.
Na svém vlastním blogu jsem musel provést řadu zásadních změn, ale jedna z nejtěžších byla kvůli skutečnosti, že jsem do svých článků o blogu vložil reklamy Google pomocí určité ruční metody..
Změna příspěvků pomocí jediného příkazu SQL
Problém je v tom, že po několika letech provozu blogu jsem měl téměř 1 000 příspěvků s ručně vloženým inzerátem Google. Pokud bych někdy chtěl provést změnu, musím upravit tisíce příspěvků.
Chtěl jsem použít tento skvělý doplněk poštovních šablon, o kterém jsem psal v roce 2010. To by automatizovalo vkládání reklam pohybujících se vpřed, ale pokud bych to použil bez odstranění všech stávajících reklam, skončil bych se dvěma reklamy ve starých článcích.
Abych odstranil starý inzerát, musel jsem provést trochu kouzla SQL a dnes se s tebou o to podělím. Akce se odehrává v phpMyAdmin a z levého menu budete muset vybrat databázi svého blogu.
Kód, který budete používat k odstraňování částí vašeho obsahu, bude ve značce SQL. Tím mám na mysli kód, který vám ukážu, budete moci použít k odstranění veškerého obsahu, který existuje na více blogových příspěvcích, od 2 do 200 - nebo více. Jediným požadavkem je, že to, co chcete odstranit, musí mít společný počáteční text a koncový text - jako reklama Google má společnou počáteční značku a koncovou značku.
Takto vypadají mé novější položky blogu, přičemž reklama byla ručně vložena hned za “více” značka na každé stránce, zarovnáno vpravo.
Způsob, jakým je tento kód umístěn na stránce, vypadá takto:
Jak vidíte, mám “typ skriptu” startovací značku, kterou mohu použít na začátku každého inzerátu, a “skript src” tag, který mohu použít na konci.
Takhle to funguje. Musíte říct SQL “Aktualizace” příkaz, který chcete úplně vymazat z tohoto bloku vaší stránky. Musíte pochopit tři základní funkce MySQL - nahradit, subst a lokalizovat.
Nejprve pomocí příkazu LOCATE řekněte příkazu umístění počátečního a koncového bodu. V mém případě používám řetězce na začátku a na konci sekce, kterou chci odstranit. Počáteční umístění na stránce začátku je:
LOCATE ('', post_content)
Konečné umístění je složitější. Vyhledat vám dává začátek řetězce, takže musíte přidat počet znaků na samý konec řetězce, abyste získali konečné umístění..
LOCATE ('", post_content) + 93
Dále budete muset říct “NAHRADIT” fungují přesně, jaký text chcete nahradit. To provedete extrahováním skutečného řetězce z obsahu příspěvku pomocí funkce SUBSTR. Musíte jí předat počáteční místo (které nyní máte) a délku. Délka, kterou musíte vypočítat odečtením počáteční pozice od poslední polohy (kterou také máte).
Jak to vypadá, s kódem výše vloženým do funkce SUBSTR:
subst (post_content, locate ('', post_content), ((locate ('', post_content) + 93) - (locate ('', post_content)))))
Vypadá to šíleně, že? Pokud se ale podíváte pozorně, uvidíte tři vložené části - zveřejnit obsah, počáteční umístění a délku.
Nyní, když máte přesný text, který chcete ze svých příspěvků odebrat, stačí říct, že funkci VÝMĚNA nahradíte mezerou. Stačí zkopírovat výše uvedený kód do následujícího příkazu:
UPDATE wp_posts SET post_content = nahradit (post_content, string_to_replace, Repla_string);
Takhle:
UPDATE wp_posts SET post_content = REPLACE (post_content, subst (post_content, locate ('', post_content)), ((locate ('', post_content) + 93) - (locate ('', post_content))))), ");
Po spuštění výše uvedeného skriptu, pokud je veškerá syntaxe správně zarovnána, byste měli v phpAdmin vidět následující úspěšné výsledky.
Nyní, když znovu načtu příspěvky ve svém webovém prohlížeči - voila! Reklama byla magicky odstraněna.
Nechápejte mě špatně, nefungovalo to u všech reklam, protože jsem měl nějaké starší, které měly na začátku a na konci trochu jiné formátování. Líbí se mi tato stránka.
Ale s trochou vyladění, jen změnou přesných značek pro začátek / konec, jsem byl schopen znovu spustit SQL a vymazat je také.
Tato technika bude pracovat na odstranění veškerého obsahu, který je ve vašem příspěvku WordPress. To je krása příspěvků v databázi MySQL, můžete jednoduše spouštět příkazy SQL a manipulovat s tisíci příspěvky najednou - ušetříte tak obrovské množství manuální práce. Než začnete, nezapomeňte zálohovat databázi!
Máte nějaké jiné úhledné použití pro tento příkaz SQL? Dopřejte si snímek ve své vlastní databázi WordPress a podívejte se, jak to pro vás funguje. Podělte se o své zkušenosti a zpětnou vazbu v sekci komentářů níže.
Obrazové kredity: Shutterstock