Zadejte hledaný výraz...

WordPress – příliš mnoho souborů v jedné složce

Mikoslovak
verified
rating uzivatele
30. 3. 2019 19:27:27
Ahoj,
mám v wp-content/uploads/2017/07/ desítky tisíc obrázků. Z programátorského hlediska to prý není ideální, jak bych to mohl rozkouskouvat do více podsložek? Ví někdo jak na to?
Díky
30. 3. 2019 19:27:27
https://webtrh.cz/diskuse/wordpress-prilis-mnoho-souboru-v-jedne-slozce#reply1395013
Petr Kývala
verified
rating uzivatele
(45 hodnocení)
30. 3. 2019 19:50:56
Na to už je nejlepší nějaké CDN pokud se nepletu.
30. 3. 2019 19:50:56
https://webtrh.cz/diskuse/wordpress-prilis-mnoho-souboru-v-jedne-slozce#reply1395012
Zda je to vhodné, nebo ne, záleží na mnoha faktorech. Obecně dnešní moderní filesystémy nemají problémy se stovkami tisíc i miliony soubory v jedné složce. Záleží na operacích, které s tím chci dělat - přímý přístup je v pohodě, když to ale chci vylistovat, tak můžu nepěkně narazit. Stejně tak, když chci používat třeba *.
K otázce - WP je dost jedno jaká je struktura v uploads. Aby byl obrázek v galerii, tak musí být uložen jako post_type = attachement v tabulce wp_posts a mít definovanou svojí cestu ve uploads ve wp_posts_meta jako vlastnost _wp_attached_file. Pro správné používání miniatur je dále potřeba je mít definované (včetně originálu) v dalších meta _wp_attachment_metadata, kde může nastat trochu problém, protože je to serializovaný řetězec a změnou délky cesty se rozbije.
Kdybych to měl dělat, tak by postup byl následující:
a) rozložení souborů do jiné složky do podsložek podle nějakého klíče - např. první písmeno md5 hashe jména souboru
b) vytažení seznamu všech posts, kterých se to týká (původní cestu najdu v guid)
c) projetí všech metadat k těmto posts - jednoduchá náhrada v _wp_attached_file, deserializace _wp_attachment_metadata, náhrada cesty k originálu, serializace zpět a uložení
d) náhrada všech referencí na původní média v obsahu
Prakticky jde b,c,d jednoduše udělat podobně jako když se přechází na https - https://naswp.cz/https-a-wordpress/#better-search-replace
Pro b,c udělám náhradu v wp_posts_meta - 2017/07/ za novou strukturu x/y/ (poradí si to i ze serializací, jen si musím zkontrolovat, zda tam nejsou nějaké vlastnosti něčeho jiného, co by řetězec také obsahovalo). Pro d nahradím wp-content/uploads/2017/07/ za novou wp-content/uploads/x/y/.
31. 3. 2019 11:09:51
https://webtrh.cz/diskuse/wordpress-prilis-mnoho-souboru-v-jedne-slozce#reply1395011
Pro odpověď se přihlašte.
Přihlásit