Kako urediti tisuće WordPress poruka pomoću samo jedne SQL naredbe

  • Edmund Richardson
  • 0
  • 4207
  • 1255
Oglas

Posjedovanje i vođenje WordPress bloga je jako zabavno, posebno kada prvi put započnete. Dizajniranje web stranice ili odabir dobre teme i pisanje prvih nekoliko postova u očekivanju ogromnog broja ljudi za koji ste sigurni da će vas voditi svojim putem. Neće dugo potrajati stvarnost, a prije nego što shvatite da vam se tema ne sviđa, protok posjetitelja nije samo trik i shvatite da vaš web domaćin nema baš potrebnu snagu..

Uzgoj bloga traje godinama, i puno boli i borbe - siguran sam da bi Aibek tome svjedočio. Tada su tu glavni prijelazi, kada shvatite da morate napraviti neke velike promjene, i trebat će puno posla.

Nekoliko je velikih promjena koje sam morao unijeti na svoj blog, ali jedna od najtežih bila je zbog činjenice da sam koristio određenu ručnu metodu za umetanje Googleovih oglasa u svoje članke na blogu.

Mijenjanje postova jedinstvenom SQL naredbom

Problem je u tome što sam nakon nekoliko godina vođenja bloga imao ručno umetnute gotovo 1.000 postova s ​​tim Google oglasom. Ako bih ikad htio napraviti promjenu, to bi trebalo urediti tisuću postova.

Želio sam upotrijebiti onaj cool dodatak predloška o postu o kojem sam pisao 2010. To bi automatiziralo umetanje reklama koje se kreću naprijed, ali kad bih ga koristio bez uklanjanja svih postojećih oglasa, završio bih s dva oglasi u starim člancima.

Da bih uklonio stari oglas, morao sam izvesti malo SQL magije, a danas ću to podijeliti s vama. Radnja se odvija u phpMyAdminu i morat ćete odabrati bazu podataka svog bloga s lijevog izbornika.

Kôd koji ćete koristiti za uklanjanje dijelova vašeg sadržaja nalazit će se u SQL oznaci. Ono što želim reći je kôd koji ću vam pokazati, moći ćete ukloniti bilo koji sadržaj koji postoji u više postova na blogovima, od 2 do 200 - ili više. Jedini zahtjev je da ono što želite ukloniti mora imati zajednički početni i krajnji tekst - kao što je Google oglas ima zajedničku početnu i krajnju oznaku.

Ovako izgledaju moji noviji ulozi na blogu, s ručnim umetanjem oglasa odmah nakon “više” oznaka na svakoj stranici, poravnana s desne strane.

Način na koji je ovaj kôd postavljen na stranicu ovako:

Kao što vidite, imam “vrsta skripte” početnu oznaku koju mogu koristiti na početku svakog oglasa i “skripta src” oznaku koju mogu koristiti na kraju.

Pa evo kako to radi. Trebate reći SQL-u “ažuriranje” naredba da želite potpuno izbrisati taj blok stranice. Trebat ćete razumjeti tri osnovne MySQL funkcije - zamijeniti, podst i pronaći.

Prvo upotrijebite LOCATE da biste naredbama rekli naredne i krajnje točke. U mom slučaju koristim žice na početku i na kraju odjeljka koje želim ukloniti. Početna lokacija na početku stranice je:

LOCATE ('', post_content)

Krajnje mjesto je zamršenije. Locate vam daje početak niza, tako da morate dodati broj znakova na samom kraju niza da biste dobili kraj mjesto.

LOCATE ('", post_content) + 93

Zatim ćete morati reći “ZAMIJENITI” funkcionirajte točno koji tekst želite zamijeniti. To radite ekstrahiranjem stvarnog niza iz sadržaja posta, pomoću funkcije SUBSTR. Morate mu zadati početnu lokaciju (koju sada imate) i dužinu. Dulinu koju trebate izračunati oduzimajući početni položaj od posljednjeg položaja (koji također imate).

Evo kako to izgleda, uz gornji kôd umetnut u funkciju SUBSTR:

substr (post_content, locate ('', post_content), ((locate ('', post_content) + 93) - (locate ('', post_content))))

Izgleda ludo zar ne? Ali ako pažljivo pogledate, vidjet ćete da su ugrađena tri odjeljka - objavite sadržaj, početnu lokaciju i duljinu.

Sada kada imate točan tekst koji želite ukloniti iz svojih postova, sve što morate učiniti je reći REPLACE funkciji da je zamijenite razmakom. Jednostavno kopirajte gornji kôd u sljedeću naredbu:

AŽURIRANJE wp_posts SET post_content = zamjena (post_content, string_to_replace, substitu_string);

Kao ovo:

UPDATE wp_posts SET post_content = ZAMJENA (post_content, substr (post_content, locate ('', post_content), ((locate ('', post_content) + 93) - (locate ('', post_content))))) '');

Izvedite gornju skriptu, ako je sva sintaksa pravilno poravnata, trebali biste vidjeti sljedeće uspješne rezultate na phpAdmin.

Sad kad ponovno učitam postove u svom web pregledniku - voila! Oglas je magično uklonjen.

Nemojte me krivo shvatiti, nije funkcioniralo na svim oglasima jer sam na početku i na kraju imao nešto starije koji su imali malo drugačije oblikovanje. Lajkaj ovu stranicu.

Ali s malo podešavanja, samo promjenom preciznih oznaka za početak / završetak, uspio sam ponovo pokrenuti SQL i obrisati ih.

Ova tehnika će raditi na uklanjanju bilo kojeg sadržaja koji je u vašem WordPress objavljivanju sadržaja. To je ljepota postojanja postova u MySQL bazi podataka, jednostavno možete pokrenuti SQL naredbe za manipulaciju na hiljade postova odjednom - štedeći ogromnu količinu ručnog rada. Samo prije stvaranja napravite sigurnosnu kopiju baze podataka!

Imate li još kakvih urednih načina za ovu SQL naredbu? Okušajte se u vlastitoj bazi podataka WordPressa i pogledajte koliko dobro funkcionira za vas. Podijelite svoja iskustva i povratne informacije u odjeljku s komentarima u nastavku.

Slikovni prilozi: Shutterstock




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.