Uneori nu ai o imagine de prezentare pentru un articol și vrei ca prima imagine a articolului tău să fie folosită automat ca imagine de prezentare.
Instrucțiuni: Adaugă următorul cod în fișierul functions.php al temei tale WordPress pentru a seta automat imaginea de prezentare pentru articolele tale. Dacă adaugi o imagine de prezentare la un articol, aceasta va suprascrie acest cod și va afișa imaginea ta de prezentare în schimb.
function autoset_featured() {
global $post;
$already_has_thumb = has_post_thumbnail($post->ID);
if (!$already_has_thumb) {
$attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);
}
}
}
}
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');
De asemenea, s-ar putea să vă placă eliminarea casetei meta pentru imaginea de prezentare.
O întrebare, și dacă trebuie să exclud anumite pagini? ce aș putea face... mulțumesc mult
De ce funcționează doar la încărcarea unei imagini noi și nu la alegerea uneia din bibliotecă, chiar dacă nu este folosită în niciun alt articol?
Folosește atașamentele, care vor prelua imaginea pe baza faptului că imaginea este atribuită sau atașată articolului.
Mulțumesc mult, funcționează perfect <3
Nu sunt familiarizat cu php. Folosesc tema astra. După adăugarea acestui cod, o imagine aleatorie din articol este setată ca imagine de prezentare în loc de prima imagine. Poți repara asta?
Deci, în primul rând, mulțumesc pentru acest fragment de cod. Ca fotograf, am întâmpinat o problemă ușor diferită, în sensul că aveam nevoie ca pagina atașamentului să aibă mai multe funcționalități. După ce am configurat pagina atașamentului pentru a afișa miniaturi, am modificat codul dvs. pentru a seta automat miniatura paginii atașamentului ca fiind imaginea atașamentului. A fost o bătaie de cap, așa că iată codul pentru oricine altcineva care ar putea căuta să facă același lucru.
function set_attachment_thumbnail() { global $post; if( get_post_type($post) === ‘attachment’) { $attachment_thumb = has_post_thumbnail($post->ID); if( !$attachment_thumb ) { set_post_thumbnail($post->ID, $post->ID ); } } } … la fel ca mai sus, cu numele funcției schimbat.
Sper că acest lucru ajută pe altcineva. 🙂
Mulțumim că ne-ai împărtășit fragmentul tău, Chris 🙂
Tocmai am încercat să aplic acest cod – mulțumesc pentru partajare – dar am constatat imediat că găsește o imagine doar în aproximativ 2/3 din cazuri și nici nu este în mod fiabil prima imagine din postare. Aveți vreo idee?
Când pun codul la sfârșitul fișierului functions.php, acesta apare în partea de sus a site-ului meu în loc să apară acolo. Știți de ce sau cum să rezolv?
Cel mai probabil, codul a fost adăugat incorect. Cred că ar trebui să consultați articolul nostru despre adăugarea corectă a fragmentelor de cod.
De asemenea, ați putea dori să consultați depanarea erorilor WordPress și repararea celor mai comune erori WordPress.
Salut, funcționează perfect pentru postările wordpress, dar nu și pentru tipurile de postări personalizate. Aveți vreo idee pentru a face să funcționeze pe orice tip de postare personalizată?
Toate cele bune Sebastian
Salut
Am încercat acest cod pe tema Elegantthemes Extra și nu funcționează!