Hai să-ți zic cum mi-am petrecut ultima jumătate de oră, că e tare „amuzant”. Task-ul: trebuia să fac un export al tuturor atașamentelor dintr-o bază de date WP. În principiu, treaba asta e ușoară, e un banal JOIN:
mysql -u -p -e "USE wordpress_db; SELECT meta_value FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND post_type = 'attachment' AND meta_key = '_wp_attached_file' AND post_mime_type LIKE '%image%' LIMIT 0" > images_list.txt
Treaba asta, teoretic, ar fi trebuit să-mi pună într-un fișier toate imaginile urcate în DB. Scopul: să curăț imaginile intermediare – acele imagini care sunt generate de WP la fiecare imagine urcată (lucrez pe o temă legacy care avea 23 de formate de imagine!).
În fine, testez, merge. Pe server? Nu merge. Dă-i, verifică și răsverifică, albește un pic, smulge puțin păr din cap… Ghici ce s-a întâmplat?
Ei bine… vezi acel LIMIT 0
? Pentru că am un DB gigant (15k+ posturi), făceam teste doar pe primele 10 rezultate. Și în loc să șterg LIMIT 10
, am șters doar o cifră, crezând, în naivitatea mea, că zero înseamnă că ia toate rezultatele.
Ei bine… Nu.
Nu ia toate rezultatele.
Nu ia nici un rezultat, ca să fiu mai exact.
Nu te-ar ajuta un astfel de plugin?
https://ro.wordpress.org/plugins/force-regenerate-thumbnails/
@alex: Păi vreau întâi să le șterg pe alea vechi (și nefolosite). Regenerarea nu-i o problemă; fiind multe, fac treaba asta în bash, cu wp-cli
@Ionuț Staicu: Pluginul intai sterge tot si apoi le genereaza pe alea noi, in functie de ce add_image_size ai acum. Cat despre viteza regenerarii clar merge mai rapid cu wp-cli dar ca si functionalitate ar trebui sa faca ce vrei tu.
„Force Regenerate Thumbnails allows you to delete all old images size and REALLY regenerate the thumbnails for your image attachments.”
@alex: oh… pe ăla nu l-am găsit. Sau dacă l-am găsit, semăna cu pluginul folosit ultima dată, iar ăla nu făcea asta
@Ionuț Staicu: stiu ce zici, ala fara „force” e mai vechi/popular
daca limit 10 intoarce 10 rezultate, si limit 1 intoarce un rezultat, cat sa intoarca limit 0?
@add: bine mă, că tu n-ai avut niciodată brain farts!
Nu era 0 pentru auto?
De-aia nu îmi mai mergeau mie imaginile acum cativa ani in blog după ce schimbasem hostu. Hm…
Sau mă rog, 0=no limit. Parcă așa era.
Apropo de subiect, ai o idee cum as putea sa generez atasamente pornind de la featured image pentru vreo 10000 de postari/produse de WooCommerce?
Am un prieten care intai a adaugat imaginile in bulk folosind Media Uploader si abia apoi a creat produsele, deci are 99% din imagini fara atasament si asta ii cauzeaza probleme cand incearca sa le preia pe Okazii.
@Malin: id-ul pentru featured image este ținut în meta
_thumbnail_id
al fiecărui post. Acel ID este id-ul atașamentului.Ce aș face eu ar fi următoarea chestie:
1. Iau toate posturile care au thumb setat (WP_Query)
2. Setez părintele thumb-ului:
Acum, ai putea verifica să nu suprascrii părintele (e.g. aceeași imagine poate fi folosită la două posturi), dar astea sunt detalii