Crearea automată de câmpuri personalizate la publicarea postărilor WordPress este o modalitate puternică de a economisi timp și de a reduce sarcinile repetitive, mai ales dacă gestionați un site mare sau lucrați la funcționalități personalizate.
În loc să adăugați manual aceleași câmpuri personalizate de fiecare dată când publicați un anumit tip de conținut, puteți automatiza procesul și puteți menține coerența.
Am lucrat la multe proiecte WordPress de-a lungul anilor, construind totul, de la bloguri simple la site-uri complexe cu funcționalități avansate. Pe parcurs, am acumulat o mulțime de sfaturi practice, cum ar fi acesta, care vă pot face fluxul de lucru mai rapid și mai eficient.
În acest tutorial, vă vom arăta cum să adăugați câmpuri personalizate automat la publicarea postărilor în WordPress, pas cu pas.

De ce să adăugăm câmpuri personalizate automat?
Câmpurile personalizate vă permit să adăugați informații suplimentare la postările dvs. Aceste informații pot fi afișate pe site-ul dvs. web, păstrate private sau utilizate de teme și pluginuri pentru a extinde funcționalitatea site-ului dvs. web WordPress.
Există multe moduri creative de a utiliza câmpurile personalizate. Veți găsi o listă de idei utile în ghidul nostru sfaturi, trucuri și hack-uri pentru câmpuri personalizate WordPress.
În unele cazuri, veți dori ca un câmp personalizat să fie creat automat ori de câte ori publicați o postare. Acest lucru este deosebit de util atunci când adăugați funcționalități la WordPress, astfel încât să îl puteți folosi ca mai mult decât un simplu blog.
De exemplu, la WPBeginner, am folosit această metodă atunci când am creat un site web cu galerie. Am dorit să stocăm URL-uri scurte pentru fiecare element trimis în galerie. Prin urmare, am creat automat un câmp personalizat pentru a stoca URL-ul scurt atunci când fiecare postare era publicată.
Acest tip de automatizare ajută dezvoltatorii să economisească timp, să reducă erorile și să construiască site-uri WordPress mai puternice cu mai puțin efort manual.
Acum, să vedem cum să o configurăm.
Adăugarea automată a câmpurilor personalizate la publicarea postării
Această metodă implică adăugarea unui fragment de cod personalizat în fișierul functions.php al temei dvs. Nu recomandăm editarea fișierelor temei utilizatorilor fără experiență, deoarece chiar și o greșeală mică ar putea defecta site-ul dvs. web.
În schimb, vă vom arăta cum să utilizați pluginul WPCode în acest tutorial.

WPCode facilitează adăugarea de fragmente de cod în WordPress fără a fi nevoie să editați fișierul functions.php al temei. De asemenea, puteți gestiona toate fragmentele de cod dintr-un singur ecran central.
Dacă aceasta este prima dată când adăugați cod în WordPress, atunci ar trebui să consultați ghidul nostru despre cum să copiați și lipiți fragmente de cod în WordPress pentru mai multe detalii.
Pentru a începe, trebuie să instalați și să activați pluginul gratuit WPCode. Dacă aveți nevoie de ajutor, consultați tutorialul nostru despre cum să instalați un plugin WordPress.
Notă: Versiunea gratuită a WPCode are tot ce aveți nevoie pentru a adăuga cod personalizat în WordPress. Pentru funcționalități mai avansate, cum ar fi fragmente programate, pixeli de conversie și multe altele, puteți face upgrade la WPCode Pro.
Odată ce pluginul este activat, un nou element de meniu etichetat „Fragmente de cod” va fi adăugat în bara de administrare WordPress. Faceți clic pe el și apoi apăsați butonul „Adăugare nou” pe ecranul următor.

Acest lucru vă va duce la Biblioteca de fragmente WPCode.
De aici, navigați la opțiunea „Adăugați codul dvs. personalizat (Snippet nou)” și faceți clic pe butonul „+ Adăugați snippet personalizat” de sub acesta.

În continuare, selectați „PHP Snippet” ca tip de cod din lista de opțiuni care apar pe ecran.

După aceea, trebuie să dați un titlu fragmentului, apoi să copiați următorul cod și să-l lipiți în caseta „Previzualizare cod”.
add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
add_post_meta($post_ID, 'field-name', 'custom value', true);
}
}
Va trebui să înlocuiți „nume-câmp” și „valoare-personalizată” cu numele și valoarea reale pe care doriți să le utilizați pentru câmpul personalizat.

Apoi, derulați în jos la secțiunea „Inserare”. Aici, va trebui să lăsați selectată metoda „Inserare automată”.

Cu metoda de inserare automată, fragmentul va fi inserat și executat automat în locația corectă.
Odată ce ați terminat, va trebui să comutați comutatorul de la „Inactiv” la „Activ” și apoi să faceți clic pe butonul „Salvare fragment”.

Odată ce fragmentul este activat, câmpul personalizat va fi creat ori de câte ori publicați o postare.
Sperăm că acest tutorial v-a ajutat să învățați cum să adăugați câmpuri personalizate automat la publicarea postărilor în WordPress. De asemenea, ați putea dori să învățați cum să afișați câmpuri personalizate în afara buclei în WordPress sau să consultați lista noastră de pluginuri WordPress obligatorii pentru a vă dezvolta site-ul.
Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Jiří Vaněk
Dacă am un site web cu mai mulți utilizatori și doresc ca o biografie a autorului să fie inserată automat la publicarea unui articol, poate fi folosit acest ghid? Adică, pot fi folosite câmpuri personalizate pentru a asigura că o scurtă biografie a autorului este inserată la început, în funcție de cine scrie articolul? Aș dori ca acest lucru să fie automatizat. În prezent, facem acest lucru folosind Elementor, unde fiecare autor are șablonul salvat și trebuie să îl insereze manual la început.
Suport WPBeginner
Ceea ce căutați este o casetă de prezentare a autorului, pe care o acoperim în ghidul nostru de mai jos:
https://014.leahstevensyj.workers.dev/wp-tutorials/how-to-add-an-author-info-box-in-wordpress-posts/
Admin
Sateesh Raghuwanshi
Trebuie să adaug această acțiune pentru tipul de postare personalizată numită „ad_system”
nayan
Vreau să adaug ID-ul categoriei pentru postare în tabelul post_meta. Cum poate fi modificată funcția function add_custom_field_automatically($post_ID) pentru a acomoda acest lucru?
Mulțumesc
chris
În loc să adaug câmpul personalizat în momentul creării postării, cum afișez un câmp personalizat implicit pe pagina de administrare?
puanthanh
nu se adaugă la tipul de postare personalizat
Personal editorial
Dacă observați, codul de mai sus nu are nimic legat de tipurile de postări personalizate. Se adaugă doar la tipul de conținut Post și Pagină. Deci, ar trebui să specificați hook-ul pentru tipul dvs. de postare personalizată.
Admin
puanthanh
Mulțumesc pentru răspuns. Mă poți ajuta cu acest cod.
add_action(‘publish_page’, ‘add_custom_field_automatically’);
add_action(‘publish_post’, ‘add_custom_field_automatically’);
add_action( ‘save_post’, ‘add_custom_field_automatically’ );
function add_custom_field_automatically($post_ID) { global $post; if(!wp_is_post_revision($post_ID)) { global $wpdb; $user_id = $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_ID"); $themename = $wpdb->get_var("SELECT meta_value FROM $wpdb->usermeta WHERE meta_key = ‘themeperauthor’ AND user_id = $user_id"); add_post_meta($post_ID, ‘themeperauthor’, $themename, true); } } Când câmpul meta al utilizatorului este modificat, vreau să șterg automat câmpul personalizat și să actualizez cu cel nou
brian
Am lucrat la adăugarea unor câmpuri personalizate ascunse la publicarea/actualizarea postărilor (prin prefixarea numelui câmpului cu „_”), dar din anumite motive trebuie să actualizez postarea de două ori înainte ca intrările wp_postmeta să fie scrise în baza de date.
Am încercat să mă joc cu prioritatea și să experimentez cu alte hook-uri de acțiune (draft_to_publish, edit_post, etc.), dar se pare că nu face nicio diferență.
Aveți idei?
Personal editorial
folosești trucul lui Otto cu API-ul transient?
Admin
Boba
Thanks for including the source link
Personal editorial
Thanks for providing an amazing tip
Admin
Daniel Suarez
Mulțumesc Otto, un alt sfat grozav!
Piet
va funcționa și pentru tipurile de postări personalizate?
cceva de genul add_action(‘publish_custom-post-typ-name’, ‘add_custom_field_automatically’);
Otto
Da, va funcționa.
Un dezavantaj al acestei tehnici de care oamenii ar trebui să fie conștienți este că, dacă cineva editează o postare publicată, acest hook va fi declanșat din nou la editare. Prin urmare, trebuie să verificați meta-ul înainte de a-l adăuga sau de a-l actualiza, sau de a face ceea ce are cel mai mult sens pentru cazul dvs. de utilizare.
Dacă doriți ca codul dvs. să fie declanșat doar la publicarea inițială, atunci puteți folosi hook-ul transition_post_status. Acest hook funcționează astfel:
add_action('transition_post_status','example',10,3);
function example($new, $old, $post) {
// $new este noul statut al postării ('publish')
// $old este statutul vechi al postării ('draft')
// $post este Obiectul Post complet (deci folosiți $post->ID pentru ID, etc.)
}
Apoi, aici poți face o verificare pentru ceva de genul acesta:
if ($new == 'publish' && $old != 'publish')
Pentru ca codul dvs. să fie utilizat numai atunci când starea postării se tranziționează efectiv la publicat din orice stare anterioară. Acest hook este declanșat în același timp cu hook-urile {$status}_{$post-type}, deci operațiunea lor este practic aceeași.
Piet
Mulțumesc Otto, voi experimenta puțin cu asta!
Personal editorial
Mulțumesc Otto pentru clarificare.
Admin
Vivek Parmar
mulțumesc pentru acest sfat util. anterior, în timp ce foloseam câmpuri personalizate, trebuia să lucrez manual. acum acest lucru o va face automat. mulțumesc că mi-ați economisit timp prețios