add_image_size() pentru tipuri specifice de Postări

26 nov. 2010, 23:28:23
Vizualizări: 12.9K
Voturi: 19
set_post_thumbnail_size( 80, 80, true ); // true pentru toate tipurile de postări

Să presupunem că am două tipuri de postări pe blogul meu: Postare, Videoclip și Produs. Poate doresc o dimensiune de imagine de 80x80 pentru postările mele, dar 100x100 pentru videoclipurile mele și 50x100 pentru Produsele mele. Din câte știu, sunt obligat să creez miniaturi pentru imaginile Postărilor mele în dimensiunile de 100x100 și, de asemenea, 50x100. Și pentru produsele mele, sunt obligat să creez miniaturi care sunt 80x80 și 100x100, chiar dacă nu le voi folosi niciodată.

Există o modalitate de a crea dimensiuni de imagini care se bazează pe tipurile de postări, astfel încât să nu ajungi să creezi o grămadă de imagini pe care nu intenționezi să le folosești și să irosești resurse care ar putea fi utilizate în altă parte?

4
Comentarii

Am întâmpinat exact aceeași nevoie.

MikeSchinkel MikeSchinkel
27 nov. 2010 00:34:09

Ce se întâmplă dacă folosești această funcție image_resize în tema în părțile unde ai nevoie de acea dimensiune a imaginii? De asemenea, poți scrie o funcție prescurtată pentru utilizări multiple în funcție de context.

User User
21 iun. 2012 23:07:55

Pare o omisiune evidentă pentru mine, chiar încă nu a fost rezolvată?

Nathan Hornby Nathan Hornby
21 feb. 2017 19:18:32

Dimensiuni de Imagini pentru Tipuri de Postări https://wordpress.org/plugins/post-types-image-sizes/

Parsa Parsa
28 dec. 2019 10:40:08
Toate răspunsurile la întrebare 3
1
13

Nu există nicio modalitate de a baza dimensiunile imaginilor pe tipul de postare, deoarece imaginile nu sunt încă atașate unei postări atunci când le încărcați și dimensiunile intermediare ale imaginilor sunt create (când le adăugați pur și simplu prin "Media nouă", ele nu sunt nici măcar atașate niciunei postări).

Cu toate acestea, recent am creat două plugin-uri care împreună vor face ceea ce doriți. Imagini intermediare virtuale vor intercepta crearea dimensiunilor intermediare ale imaginilor: acestea nu vor fi create pe disc, dar vor exista în continuare în matricea de metadate. Acest lucru face ca WordPress să creadă că ele există, astfel încât să le puteți folosi ca imagini normale. Plugin-ul companion, On-Demand Resizer va crea dimensiunile de imagini lipsă atunci când acestea sunt solicitate. Prima dată când imaginea este solicitată, aceasta este creată, toate solicitările ulterioare vor servi doar imaginea nou creată.

Aceste plugin-uri au nevoie de o rescriere înainte să le pun în directorul de plugin-uri WordPress, dar ar trebui să fie sigure. Sau cel puțin să aibă comentarii TODO acolo unde nu sunt sigure.

26 nov. 2010 23:40:35
Comentarii

Super!

MikeSchinkel MikeSchinkel
27 nov. 2010 00:36:11
0

Am postat niște cod pe acest alt thread care setează un transient cu tipul de postare atunci când se încarcă o imagine, apoi verifică valoarea acelui transient și ajustează dimensiunea post-thumbnail în consecință când încărcarea este finalizată. Nu este perfect sau infailibil, dar ar trebui să demonstreze conceptul cel puțin.

30 dec. 2010 01:41:43
0

Am venit cu următoarea soluție. Aceasta creează imagini doar pentru tipul de postare personalizat fără a crea altele suplimentare. Singura problemă este că dacă folosești plugin-uri precum Advanced Custom Fields, atunci când încerci să afișezi câmpul galerie, acesta arată doar dimensiunile implicite ale imaginilor din WordPress: 'thumbnail', 'medium', 'large' și nu poți accesa dimensiunile personalizate ale imaginilor create.

if ( function_exists ('add_image_size') ) {

function remove_default_img($sizes) {
    unset( $sizes['medium']);
    unset( $sizes['large']); 
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');

$type = get_post_type($_REQUEST['post_id']);
// Dimensiuni de Imagini pentru Post_Name =====================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

22 mai 2014 20:16:18