Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Wie man automatisch benutzerdefinierte Felder bei der Veröffentlichung eines Beitrags in WordPress hinzufügt

Das automatische Erstellen individueller Felder bei der Veröffentlichung von WordPress-Beiträgen kann ein leistungsfähiges Werkzeug im Werkzeugkasten eines jeden Entwicklers sein.

Wir finden, dass dieser einfache Trick Ihnen helfen kann, Zeit zu sparen und die Arbeitsabläufe zu straffen, wenn Sie Ihrer WordPress-Website neue Funktionen hinzufügen.

In diesem Artikel zeigen wir Ihnen, wie Sie benutzerdefinierte Felder automatisch bei der Veröffentlichung eines Beitrags in WordPress hinzufügen können.

How to Add Custom Fields Automatically on Post Publish in WordPress

Warum benutzerdefinierte Felder automatisch hinzufügen?

Mitbenutzerdefinierten Feldern können Sie zusätzliche Informationen zu Ihren Beiträgen hinzufügen. Diese Informationen können auf Ihrer Website angezeigt werden, privat bleiben oder von Themes und Plugins verwendet werden, um die Funktionalität Ihrer WordPress-Website zu erweitern.

Es gibt viele Möglichkeiten, benutzerdefinierte Felder zu verwenden. Eine Liste mit hilfreichen Ideen finden Sie in unserem Leitfaden zu benutzerdefinierten Feldern – Tipps, Tricks und Hacks.

Manchmal möchten Sie, dass ein benutzerdefiniertes Feld automatisch erstellt wird, wenn Sie einen Beitrag veröffentlichen. Dies gilt vor allem dann, wenn Sie WordPress Funktionen hinzufügen, damit Sie es nicht nur als einfachen Blog verwenden können.

Wir haben diese Methode bei der Erstellung einer Galerie-Website verwendet. Wir wollten Kurz-URLs für jedes in der Galerie eingestellte Objekt speichern. Also haben wir automatisch ein benutzerdefiniertes Feld erstellt, um die Kurz-URL zu speichern, wenn jeder Beitrag veröffentlicht wurde.

Dieser Trick kann für Entwickler, die WordPress auf die nächste Stufe heben wollen, sehr nützlich sein.

Automatisches Hinzufügen von benutzerdefinierten Feldern bei der Veröffentlichung eines Beitrags

Bei dieser Methode wird ein benutzerdefinierter Codeschnipsel in die Datei functions.php Ihres Themes eingefügt. Wir empfehlen unerfahrenen Benutzern nicht, die Dateien Ihres Themes zu bearbeiten, da schon ein kleiner Fehler Ihre Website zerstören könnte.

Stattdessen zeigen wir Ihnen in diesem Lernprogramm, wie Sie das WPCode-Plugin verwenden.

WPCode

Mit WPCode können Sie ganz einfach Code-Snippets in WordPress hinzufügen, ohne die functions.php-Datei Ihres Themes bearbeiten zu müssen. Außerdem können Sie alle Ihre Code-Snippets von einem zentralen Bildschirm aus verwalten.

Wenn Sie zum ersten Mal Code in WordPress einfügen, sollten Sie sich unsere Anleitung zum Kopieren und Einfügen von Codeschnipseln in WordPress ansehen, um weitere Einzelheiten zu erfahren.

Um loszulegen, müssen Sie das kostenlose WPCode-Plugin installieren und aktivieren. Wenn Sie Hilfe benötigen, lesen Sie unsere Anleitung zur Installation eines WordPress-Plugins.

Hinweis: Die kostenlose Version von WPCode enthält alles, was Sie zum Hinzufügen von benutzerdefiniertem Code in WordPress benötigen. Für erweiterte Funktionen wie geplante Snippets, Konvertierungspixel und mehr können Sie auf WPCode Pro upgraden.

Sobald das Plugin aktiviert ist, wird ein neuer Menüpunkt mit der Bezeichnung „Code Snippets“ zu Ihrer WordPress-Verwaltungsleiste hinzugefügt. Klicken Sie darauf und dann auf die Schaltfläche „Neu hinzufügen“ auf dem nächsten Bildschirm.

Click the Add New Button to Add Your First Custom Code Snippet in WPCode

Navigieren Sie von hier aus zur Option „Benutzerdefinierten Code hinzufügen (neues Snippet)“ und klicken Sie auf die Schaltfläche „Snippet verwenden“ darunter.

Add your new custom code snippet in WPCode

Danach müssen Sie dem Snippet einen Titel geben und den folgenden Code kopieren und in das Feld „Codevorschau“ einfügen.

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);
    }
}

Sie müssen „Feldname“ und „Benutzerdefinierter Wert“ durch den tatsächlichen Namen und Wert ersetzen, den Sie für das benutzerdefinierte Feld verwenden möchten.

Vergessen Sie nicht, „PHP Snippet“ als Code-Typ aus dem Dropdown-Menü auf der rechten Seite auszuwählen.

Paste code snippet in WPCode code box

Blättern Sie dann nach unten zum Abschnitt „Einfügen“. Hier müssen Sie die Methode „Automatisch einfügen“ ausgewählt lassen.

Pick the insertion method for your custom code snippet

Mit der Methode Auto Insert wird das Snippet automatisch an der richtigen Stelle eingefügt und ausgeführt.

Sobald Sie fertig sind, müssen Sie den Schalter von „Inaktiv“ auf „Aktiv“ umstellen und dann auf die Schaltfläche „Snippet speichern“ klicken.

Save and activate your custom code snippet

Sobald das Snippet aktiviert ist, wird das benutzerdefinierte Feld erstellt, sobald Sie einen Beitrag veröffentlichen.

Wir hoffen, dass dieses Tutorial Ihnen geholfen hat zu lernen, wie man individuelle Felder automatisch bei der Veröffentlichung von Beiträgen in WordPress hinzufügt. Vielleicht möchten Sie auch erfahren , wie Sie individuelle Felder außerhalb der Schleife in WordPress anzeigen können, oder unsere Liste der unverzichtbaren WordPress Plugins zur Erweiterung Ihrer Website lesen.

Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, dass wir möglicherweise eine Provision verdienen, wenn Sie auf einige unserer Links klicken. Mehr dazu erfahren Sie unter Wie WPBeginner finanziert wird , warum das wichtig ist und wie Sie uns unterstützen können. Hier finden Sie unseren redaktionellen Prozess .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Das ultimative WordPress Toolkit

Erhalte KOSTENLOSEN Zugang zu unserem Toolkit - eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Reader Interactions

17 KommentareEine Antwort hinterlassen

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Sateesh Raghuwanshi

    I need to add this action for custom post type named ‚ad_system‘

  3. nayan

    I want to add category Id for the post in the post_meta table. How can be the function function add_custom_field_automatically($post_ID) be twicked to accomodate that?

    Thanks

  4. chris

    Instead of adding the custom field at the time of creating the post, how do I display a custom field by default on the admin page?

    • Editorial Staff

      If you notice, the code above doesn’t have anything related to the custom post types. It only adds to Post and Page „content type“. So you would have to specify the hook for your custom post type.

      Admin

      • puanthanh

        Thanks for the reply. Can you help me out on this code.
        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);
        }
        }
        When the user meta field is changed, I want to automatically delete the custom field value and update with the new one

  5. brian

    I’ve been working on adding some hidden custom fields on post publish/update (by preceding the field name with „_“) but for some reason I have to update the post twice before the wp_postmeta entries are written to the database.

    I’ve tried messing with the priority and experimenting with other action hooks (draft_to_publish, edit_post, etc) but it doesn’t seem to make a difference.

    Any ideas?

  6. Piet

    will this work too for custom post types?
    sth like add_action(‚publish_custom-post-typ-name‘, ‚add_custom_field_automatically‘);

    • Otto

      Yes, it will.

      One downside to this technique that people should be aware of is that if somebody edits a published post, this hook WILL get fired again on the edit. Therefore, you need to check for the meta before adding it, or to update it, or to do whatever makes the most sense for your use-case.

      If you only want to get your code fired off on the initial publish only, then you can use the transition_post_status hook. This hook works like this:


      add_action('transition_post_status','example',10,3);
      function example($new, $old, $post) {
      // $new is the new post status ('publish')
      // $old is the old post status ('draft')
      // $post is the complete Post Object (so use $post->ID for the ID, etc)
      }

      Then, in here you can do a check for something like this:

      if ($new == 'publish' && $old != 'publish')

      To have your code only used when the post status actually transitions to publish from whatever it was before. This hook is fired at the same time as the {$status}_{$post-type} hooks are, so the operation of them is basically the same.

  7. Vivek Parmar

    thanks for this handy tip. previously while using custom fields i have to work manually. now this will do it automatically. thanks for saving precious time of me

Eine Antwort hinterlassen

Danke, dass du einen Kommentar hinterlassen möchtest. Bitte beachte, dass alle Kommentare nach unseren kommentarpolitik moderiert werden und deine E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwende KEINE Schlüsselwörter im Namensfeld. Lass uns ein persönliches und sinnvolles Gespräch führen.