10 SQL lekérdezés WordPress-hez, amivel időt spórolhatsz

A WordPress minden adatot az adatbázisba tárol. A bejegyzések, oldalak, hozzászólások szövegét, a bővítmények beállításait, a felhasználók adatit, a saját beállításait, stb.

Az adminisztrációs felülete nagyszerű arra, hogy ott felhasználóbarát módon kezeljük ezeket az adatokat, ám van számos olyan eset, amikor nem tud kielégítő lenni ez a nagyszerű felület. Főleg olyankor, amikor nagy mennyiségű, több ezer bejegyzéssel rendelkező oldalról van szó. De olyan is előfordulhat, hogy az adott funkció egyszerűen nem is létezik, pedig szükség lenne rá. Ilyenkor lehet keresni mindenféle bővítményt, vagy a legegyszerűbb, ha felcsapjuk a PHPMyAdmint, és néhány jól irányzott SQL lekérdezéssel helyretesszük amit kell.

Menteni, menteni, menteni!

Az adatbázis nem gyerekjáték! Az oldalad lelke, munkád gyümölcse. Ezért minden körülmények között készíts róla biztonsági mentést, mielőtt bármit csinálsz vele! A legjobb megoldás, ha egy szeparált környezetben próbálod ki, hogy a kívánt hatás történik-e, majd csak aztán próbálod meg éles adatbázison. Nyilván semmiféle felelősséget nem tudok vállalni a lenti SQL lekérdezések megfelelő működéséért.

Fontos még megemlíteni, hogy a példákban mindenhol az alapértelmezett wp_ előtagot láthatod a táblanevekben. Ezt nyilván át kell írni arra, amit használsz.

1. Felesleges vált shortcode eltávolítása

H megszűnik egy shortcode-okat használó bővítmény támogatása, vagy már nincs tovább rá szükséged, akkor elég macerás egyesével kivenni mindenhonnan. Ilyenkor jöhet jól az alábbi SQL lekérdezés:

UPDATE wp_post SET post_content = replace(post_content, '[törlendő_shortcode]', '' ) ;

2. SPAM hozzászólások tömeges törlése

Ha elárasztottak a SPAM hozzászólások, elég macerás őket tízesével, de még százasával is törölni. Viszont itt a megoldás az alábbi SQL lekérdezés személyében:

DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

3. Bejegyzések oldallá alakítása, oldalak bejegyzéssé alakítás

Bejegyzések oldallá alakítása:

UPDATE wp_posts SET post_type = 'page' WHERE post_type = 'post'

Oldalak bejegyzéssé alakítása:

UPDATE wp_posts SET post_type = 'post' WHERE post_type = 'page'

4. Változatok törlése

A WordPress oldalakból és bejegyzésekből úgynevezett változatokat (revisions) hoz létre, miközben szerkeszted valamelyiket. Így lehetőséged van akár visszaállni egy korábbi változatra.  Alapvetően nincs megszabva, hogy ezekből mennyi jöhet létre, így elég hamar tetemes mennyiség keletkezhet belőlük, ami hizlalja az adatbázist. (Amúgy a korábbi wp-config.php extrák bejegyzéseben szó volt a változatok számának korlátozásáról.)

A változatokat egycsapásra törölheted az adatbázisból az alábbi lekérdezéssel:

DELETE FROM wp_posts WHERE post_type = "revision";

5. Alapértelmezett admin felhasználó átnevezése

Felhasználónevek megváltoztatására a WordPress felületén egyáltalán nincs lehetőség, ám az alábbi SQL lekérdezéssel ezt is meg tudjuk tenni. Az uj_felhasznalonev helyére a kívánt felhasználónevet, az admin helyére pedig a megváltoztatni kívánt felhasználónevet kell írni.

UPDATE wp_users SET user_login = 'uj_felhasznalonev' WHERE user_login = 'admin';

6. Szöveg tömeges cseréje

Van egy helyesírási típushibád, amit most, évekkel később vettél észre? Semmi baj, ezzel az SQL lekérdezéssel ki tudod javítani egy pillanat alatt, mindenhol:

UPDATE wp_posts SET 'post_content'
= REPLACE ('post_content',
'Eredeti szöveg',
'Új szöveg');

7. Visszakövetések tömeges engedélyezése vagy tiltása

Visszakövetések engedélyezése minden bejegyzésenél:

UPDATE wp_posts SET ping_status = 'open';

Visszakövetések tiltása minden bejegyzésnél:

UPDATE wp_posts SET ping_status = 'closed';

8. Hozzászólások tömeges engedélyezése vagy tiltása

Hozzászólások engedélyezése minden bejegyzésnél:

UPDATE wp_posts SET comment_status = 'open';

Hozzászólások tiltása minden bejegyzésnél:

UPDATE wp_posts SET comment_status = 'closed';

Hozzászólások engedélyezése minden bejegyzésnél csak regisztrált felhasználóknak:

UPDATE wp_posts SET comment_status = 'registered_only';

9. Bejegyzések szerzőjének tömeges módosítása

Ehhez először is meg kell tudnunk a régi és az új szerző azonosítószámát (ID), amit a wp_users táblából tudunk kinyerni. Ha sok a felhasználó, akkor használd a keresőt. Ha megvan mindkét felhasználó ID-je, akkor az alábbi lekérdezést használd.

UPDATE wp_posts SET post_author=UJ_SZERZO_ID WHERE post_author=REGI_SZERZO_ID;

10. Egyedi mezők (meta) tömeges törlése

Ha van felesleges egyedi meződ, akkor azt ezzel törölheted minden bejegyzéstípus mellől:

DELETE FROM wp_postmeta WHERE meta_key = 'TorlendoEgyediMezo';

A bejegyzés alapjául a Speckyboy cikke szolgált.

Tetszett? Oszd meg másokkal is!

A szerző: Szijártó József

2010. óta WordPress fejlesztő. Rengeteg egyedi WordPress fejlesztést készített már. Vállalkozó, oktató, van két kutyája, szereti az elektronikus zenét és egy kis OCD-től is "szenved".

Szijártó József összes bejegyzésének megtekintése →

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.