Att automatiskt skapa anpassade fält när WordPress-inlägg publiceras är ett kraftfullt sätt att spara tid och minska repetitiva uppgifter, särskilt om du hanterar en stor webbplats eller arbetar med anpassad funktionalitet.
Istället för att manuellt lägga till samma anpassade fält varje gång du publicerar en viss typ av innehåll, kan du automatisera processen och hålla saker konsekventa.
Vi har arbetat med många WordPress-projekt genom åren och byggt allt från enkla bloggar till komplexa webbplatser med avancerade funktioner. Längs vägen har vi plockat upp massor av praktiska tips som detta som kan göra ditt arbetsflöde snabbare och mer effektivt.
I den här handledningen visar vi dig hur du automatiskt lägger till anpassade fält när du publicerar inlägg i WordPress, steg för steg.

Varför lägga till anpassade fält automatiskt?
Anpassade fält låter dig lägga till ytterligare information i dina inlägg. Denna information kan visas på din webbplats, hållas privat eller användas av teman och plugins för att utöka funktionaliteten hos din WordPress-webbplats.
Det finns många kreativa sätt att använda anpassade fält. Du hittar en lista med hjälpsamma idéer i vår guide tips, tricks och hacks för anpassade fält i WordPress.
I vissa fall vill du att ett anpassat fält ska skapas automatiskt när du publicerar ett inlägg. Detta är särskilt användbart när du lägger till funktionalitet i WordPress så att du kan använda det som mer än en enkel blogg.
Till exempel, på WPBeginner använde vi den här metoden när vi skapade en gallerwebbplats. Vi ville lagra korta URL:er för varje objekt som skickades till galleriet. Så vi skapade automatiskt ett anpassat fält för att lagra den korta URL:en när varje inlägg publicerades.
Den här typen av automatisering hjälper utvecklare att spara tid, minska fel och bygga kraftfullare WordPress-webbplatser med mindre manuellt arbete.
Nu ska vi gå igenom hur du ställer in det.
Lägga till anpassade fält automatiskt vid publicering av inlägg
Denna metod innebär att lägga till ett anpassat kodavsnitt i ditt temas functions.php-fil. Vi rekommenderar inte att oerfarna användare redigerar dina temafiler, eftersom även ett litet misstag kan förstöra din webbplats.
Istället visar vi dig hur du använder pluginet WPCode i den här handledningen.

WPCode gör det enkelt att lägga till kodavsnitt i WordPress utan att behöva redigera din temas functions.php-fil. Du kan också hantera alla dina kodavsnitt från en central skärm.
Om detta är första gången du lägger till kod i WordPress, bör du kolla in vår guide om hur du kopierar och klistrar in kodavsnitt i WordPress för mer information.
För att komma igång behöver du installera och aktivera det kostnadsfria WPCode-pluginet. Om du behöver hjälp, se vår handledning om hur man installerar ett WordPress-plugin.
Notera: Den kostnadsfria versionen av WPCode har allt du behöver för att lägga till anpassad kod i WordPress. För mer avancerade funktioner som schemalagda kodsnuttar, konverteringspixlar och mer, kan du uppgradera till WPCode Pro.
När pluginet är aktiverat läggs ett nytt menyalternativ märkt 'Kodavsnitt' till i din WordPress adminmeny. Klicka på det och tryck sedan på knappen 'Lägg till nytt' på nästa skärm.

Detta tar dig till WPCode:s kodsnuttbibliotek.
Navigera härifrån till alternativet 'Lägg till din anpassade kod (nytt kodavsnitt)' och klicka på knappen '+ Lägg till anpassat kodavsnitt' under den.

Välj sedan 'PHP Snippet' som kodtyp från listan med alternativ som dyker upp på skärmen.

Därefter behöver du ge kodavsnittet en titel och sedan kopiera följande kod och klistra in den i rutan 'Kodförhandsgranskning'.
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);
}
}
Du måste ersätta 'field-name' och 'custom value' med det faktiska namn och värde du vill använda för det anpassade fältet.

Bläddra sedan ner till avsnittet 'Infogning'. Här måste du lämna metoden 'Automatisk infogning' vald.

Med metoden för automatisk infogning kommer kodavsnittet automatiskt att infogas och köras på rätt plats.
När du är klar behöver du växla omkopplaren från 'Inaktiv' till 'Aktiv' och sedan klicka på knappen 'Spara avsnitt'.

När kodavsnittet är aktiverat kommer det anpassade fältet att skapas varje gång du publicerar ett inlägg.
Vi hoppas att den här handledningen hjälpte dig att lära dig hur du automatiskt lägger till anpassade fält vid publicering av inlägg i WordPress. Du kanske också vill lära dig hur man visar anpassade fält utanför loopen i WordPress eller kolla in vår lista över måste-ha WordPress-plugins för att växa din webbplats.
Om du gillade den här artikeln, prenumerera då på vår YouTube-kanal för WordPress-videoguider. Du kan också hitta oss på Twitter och Facebook.

Jiří Vaněk
Om jag har en webbplats med flera användare och vill att en författarbiografi automatiskt ska infogas när en artikel publiceras, kan den här guiden användas? Det vill säga, kan anpassade fält användas för att säkerställa att en kort biografi av författaren infogas i början beroende på vem som skriver artikeln? Jag skulle vilja att det automatiseras på detta sätt. För närvarande gör vi detta med Elementor, där varje författare har sin mall sparad och måste manuellt infoga den i början.
WPBeginner Support
Det du letar efter är en författarbiografi-ruta som vi täcker i vår guide nedan:
https://www.wpbeginner.com/wp-tutorials/how-to-add-an-author-info-box-in-wordpress-posts/
Admin
Sateesh Raghuwanshi
Jag behöver lägga till denna åtgärd för anpassad inläggstyp som heter 'ad_system'
nayan
Jag vill lägga till kategori-ID för inlägget i tabellen post_meta. Hur kan funktionen function add_custom_field_automatically($post_ID) justeras för att rymma det?
Tack
chris
Istället för att lägga till det anpassade fältet vid tidpunkten för skapandet av inlägget, hur visar jag ett anpassat fält som standard på adminsidan?
puanthanh
det läggs inte till anpassad inläggstyp
Redaktionell personal
Om du märker, koden ovan har inget relaterat till de anpassade inläggstyperna. Den lägger bara till "innehållstyp" för Inlägg och Sida. Så du skulle behöva specificera kroken för din anpassade inläggstyp.
Admin
puanthanh
Tack för svaret. Kan du hjälpa mig med den här koden.
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);
}
}
När användarens meta-fält ändras vill jag automatiskt ta bort det anpassade fältets värde och uppdatera med det nya
brian
Jag har arbetat med att lägga till några dolda anpassade fält vid publicering/uppdatering av inlägg (genom att föregå fältnamnet med '_') men av någon anledning måste jag uppdatera inlägget två gånger innan wp_postmeta-posterna skrivs till databasen.
Jag har försökt ändra prioritet och experimentera med andra action hooks (draft_to_publish, edit_post, etc) men det verkar inte göra någon skillnad.
Några idéer?
Redaktionell personal
använder du Ottos trick med transient API?
Admin
Boba
Thanks for including the source link
Redaktionell personal
Thanks for providing an amazing tip
Admin
Daniel Suarez
Tack Otto, ännu ett bra tips!
Piet
kommer detta också att fungera för anpassade inläggstyper?
sth som add_action(‘publish_custom-post-typ-name’, ‘add_custom_field_automatically’);
Otto
Ja, det kommer det.
En nackdel med denna teknik som folk bör vara medvetna om är att om någon redigerar ett publicerat inlägg, kommer denna hook att köras igen vid redigeringen. Därför måste du kontrollera meta innan du lägger till den, eller uppdaterar den, eller gör vad som helst som är mest vettigt för ditt användningsfall.
Om du bara vill att din kod ska köras vid den första publiceringen, kan du använda kroken transition_post_status. Denna krok fungerar så här:
add_action('transition_post_status','example',10,3);
function example($new, $old, $post) {
// $new är det nya inläggsstatuset ('publish')
// $old är den gamla inläggsstatusen ('draft')
// $post är det kompletta inläggsobjektet (så använd $post->ID för ID, etc.)
}
Sedan, här inne kan du göra en kontroll för något sådant här:
if ($new == 'publish' && $old != 'publish')
För att din kod endast ska användas när inläggsstatusen faktiskt övergår till publicerad från vad den var tidigare. Denna krok utlöses samtidigt som krokarna {$status}_{$post-type}, så deras funktion är i princip densamma.
Piet
Tack Otto, ska experimentera lite med det!
Redaktionell personal
Tack Otto för förtydligandet.
Admin
Vivek Parmar
tack för detta användbara tips. tidigare när jag använde anpassade fält var jag tvungen att arbeta manuellt. nu kommer detta att göra det automatiskt. tack för att du sparade min dyrbara tid