Wie füge ich einem benutzerdefinierten Beitragstyp benutzerdefinierte Felder hinzu?
-
-
Verwenden Sie http://wordpress.org/extend/plugins/types/Use http://wordpress.org/extend/plugins/types/
- 0
- 2012-07-30
- Ajay Patel
-
6 Antworten
- Stimmen
-
- 2011-05-13
Diesist wahrscheinlich komplizierter als Sie denken. Ich würde die Verwendungeines Frameworksprüfen:
Wenn Sie Ihreeigenen schreibenmöchten,finden Sie hiereinige anständige Tutorials:
This is probably more complicated than you think, I would look into using a framework:
If you want to write your own , here are some decent tutorials:
-
wirklich wärees so schwer.Ich dachte,es wäre soeinfach wie das Hinzufügeneines Registercodes zumeinen Funktionen,wie wiresbei Posttypen und Taxonomientun.really it would be that hard. I thought it would be as simple as adding a register code to my functions like we do with post types and taxonomies.
- 1
- 2011-05-13
- xLRDxREVENGEx
-
Ich werde diese Antwort hinzufügen,aber sieistnicht zu komplex.Der Linkthinkvitamin.comerklärt hervorragend,wie Sie die Metaboxen hinzufügen und speichern können.Der Link sltaylor.co.ukistein großartiges Tutorial zur Verwendungeinigergroßartiger Codierungsmethoden.Mein Wort der Vorsichtist vorsichtig,wenn Sie den Haken "save_post" verwenden.Es heißt zu seltsamen Zeiten.Stellen Sie sicher,dass die Variable WP_DEBUG auftruegesetztist,ummögliche Fehler zuerkennen,diebei der Verwendung auftreten können.I'll plus one this answer, but it's not too complex. The thinkvitamin.com link does a great job explaining how to add the metaboxes and save them. The sltaylor.co.uk link is an awesome tutorial on using some great coding practices. My word of caution is be careful when using the `save_post` hook. It's called at weird times. Make sure to have WP_DEBUG variable set to true in order to see potential errors that arise when using it.
- 1
- 2011-05-13
- tollmanz
-
Nurein Update Ich habe denthinkvitamin Link verwendet und das hatenormgeholfen undes warein Kinderspielbeim Einrichten vonbenutzerdefinierten FeldernJust an update i used the thinkvitamin link and that helped tremendously and it was a cake walk on setting up custom fields
- 2
- 2011-05-13
- xLRDxREVENGEx
-
- 2013-04-23
Fügen Sie das Argument
supports
hinzu/bearbeiten Siees (während Sieregister_post_type
verwenden),um diebenutzerdefinierten Feldercustom-fields
für die Veröffentlichung Ihresbenutzerdefinierten Beitragstypseinzuschließen:'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'revisions' )
Quelle: https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields
Add/edit the
supports
argument ( while usingregister_post_type
) to include thecustom-fields
to post edit screen of you custom post type:'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'revisions' )
Source: https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields
-
Können Siebitte erklären,warum dies das Problem lösen könnte?Can you please explain why this could solve the issue?
- 2
- 2013-04-23
- s_ha_dum
-
Ja,dasfunktioniert. Wer hat die Antwortgegeben?Kannst duesbitte zurücknehmen? Grüße,Yes, this works. Who -1'ed the answer. Can you please take it back? Regards,
- 1
- 2013-07-25
- Junaid Qadir
-
...und dann.........?...and then.........?
- 8
- 2016-10-26
- Mark
-
- 2014-01-30
Obwohl Sieeine Validierung hinzufügenmüssen,scheint diese Aktionfür die aktuelle Version von WordPressnicht kompliziert zu sein.
Grundsätzlichbenötigen Sie zwei Schritte,umeinem benutzerdefinierten Beitragstypein benutzerdefiniertes Feld hinzuzufügen:
- Erstellen Sieeine Metabox,die Ihrbenutzerdefiniertes Feldenthält.
- Speichern Sie Ihrbenutzerdefiniertes Feldin der Datenbank
Diese Schritte werden hierglobalbeschrieben: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
Beispiel:
Fügen Sieeinem benutzerdefinierten Beitragstypmit dem Namen "Präfix-Teammitglieder"ein benutzerdefiniertes Feldmit dem Namen "Funktion" hinzu.
Fügen Sie zuerst die Metabox hinzu:
function prefix_teammembers_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high'); } add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
Wenn Sieein "Präfix-Teammitglied" hinzufügen oderbearbeiten,wird der Hook
add_meta_boxes_{custom_post_type}
ausgelöst. Siehe http://codex.wordpress.org/Function_Reference/add_meta_box für dieadd_meta_box()
-Funktion. Im obigen Aufruf vonadd_meta_box()
istprefix_teammembers_metaboxes_html
ein Rückruf zum Hinzufügen Ihres Formularfelds:function prefix_teammembers_metaboxes_html() { global $post; $custom = get_post_custom($post->ID); $function = isset($custom["function"][0])?$custom["function"][0]:''; ?> <label>Function:</label><input name="function" value="<?php echo $function; ?>"> <?php }
Im zweiten Schritt haben Sie Ihrbenutzerdefiniertes Feldin der Datenbank. Beim Speichern wird der Hook
save_post_{custom_post_type}
ausgelöst (seit Version 3.7 siehe: https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts ). Sie können dieseinbinden,um Ihrbenutzerdefiniertes Feld zu speichern:function prefix_teammembers_save_post() { if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? global $post; update_post_meta($post->ID, "function", $_POST["function"]); } add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );
Although you should have to add some validation, this action does not seem to be complicated for the current version of WordPress.
Basically you need two steps to add a Custom Field to a Custom Post Type:
- Create a metabox which holds your Custom Field
- Save your Custom Field to the database
These steps are globally described here: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
Example:
Add a Custom Field called "function" to a Custom Post Type called "prefix-teammembers".
First add the metabox:
function prefix_teammembers_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high'); } add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
If your add or edit a "prefix-teammembers" the
add_meta_boxes_{custom_post_type}
hook is triggered. See http://codex.wordpress.org/Function_Reference/add_meta_box for theadd_meta_box()
function. In the above call ofadd_meta_box()
isprefix_teammembers_metaboxes_html
, a callback to add your form field:function prefix_teammembers_metaboxes_html() { global $post; $custom = get_post_custom($post->ID); $function = isset($custom["function"][0])?$custom["function"][0]:''; ?> <label>Function:</label><input name="function" value="<?php echo $function; ?>"> <?php }
In the second step you have your custom field to the database. On saving the
save_post_{custom_post_type}
hook is triggered (since v 3.7, see: https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts). You can hook this to save your custom field:function prefix_teammembers_save_post() { if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? global $post; update_post_meta($post->ID, "function", $_POST["function"]); } add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );
-
"Warum wirdprefix_teammembers_save_post durch addnew ausgelöst?"Haben Sieeine Antwortgefunden? Ich stolpere auch übereinen zusätzlichen Funktionsauslöser,an denichmichnichterinnern kann."why is prefix_teammembers_save_post triggered by add new?" have you found an answer, i am also stumbling on a extra function trigger which i can't recall?
- 0
- 2015-02-18
- alex
-
"Fügen Sieeinem benutzerdefinierten Beitragstypmit dem Namen" Präfix-Teammitglieder "einbenutzerdefiniertes Feldmit dem Namen" Funktion "hinzu." Wasbedeutet "aufgerufen"? Der Name? Der Singularname? Die Bezeichnung? Möglicherweiseistes die Zeichenfolge,die alserstes Argumentim Typ "register_post_type" verwendet wirdOder vielleicht spieltes keine Rolle,wasesist,solangees konsistentist."Add a Custom Field called 'function" to a Custom Post Type called 'prefix-teammembers'." What does "called" mean? The name? The singular_name? The label? Maybe it's the string used as the first argument in the register_post_type function. Or maybe it doesn't matter what it is so long as it's consistent.
- 0
- 2019-10-07
- arnoldbird
-
- 2018-01-03
Esgibt verschiedene Pluginsfürbenutzerdefinierte Meta-Boxen undbenutzerdefinierte Felder.Wenn Sie sichein Plugin ansehen,das sich auf Entwickler konzentriert,sollten Sie Meta Box ausprobieren.Esist leicht und sehr leistungsstark.
Wenn Sienacheinem Tutorial zum Schreiben von Codefüreine Meta-Box/benutzerdefinierte Felder suchen,dann das istein guter Anfang.Diesist dererste Teileiner Reihe,mit dessen Hilfe Sie den Code verfeinern können,um die Erweiterung zu vereinfachen.
There are various plugins for custom meta boxes and custom fields. If you look at a plugin that focuses on developers, then you should try Meta Box. It's lightweight and very powerful.
If you're looking for a tutorial on how to write code for a meta box / custom fields, then this is a good start. It's the first part of a series that might help you refine the code to make it easy to extend.
-
- 2020-08-12
Ich weiß,dass diese Frage altist,aberfür weitere Informationen zum Thema
WordPressbietet integrierte Unterstützungfürbenutzerdefinierte Felder.Wenn Sieeinen benutzerdefinierten Beitragstyp haben,müssen Sie lediglich 'benutzerdefinierte Felder'in das Support-Arrayinnerhalb von register_post_type aufnehmen,wie von @kubante
beantwortetBeachten Sie,dass diese Option auchfürnative Beitragstypen wie Beiträge und Seiten verfügbarist,die Sienur aktivierenmüssen
Jetzt Diesesbenutzerdefinierte Feldist sehreinfach und akzeptierteine Zeichenfolge als Wert.In vielen Fällenist dasin Ordnung,aberfür komplexere Felderempfehleich,das Plugin 'Erweitertebenutzerdefinierte Felder'
zu verwendenI know this question is old but for more info about the topic
WordPress has built-in support for custom fields. If you have a custom post type then all you need is to include 'custom-fields' inside the support array inside of register_post_type as answered by @kubante
Note that this option is also available for native post types like posts and pages you just need to turn it on
Now This custom field is very basic and accepts a string as a value. In many cases that's fine but for more complex fields, I advise that you use the 'Advanced Custom Fields' plugin
-
- 2017-10-28
// slider_metaboxes_html , function for create HTML function slider_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Custom link'), 'slider_metaboxes_html', 'slider', 'normal', 'high'); } //add_meta_boxes_slider => add_meta_boxes_{custom post type} add_action( 'add_meta_boxes_slider', 'slider_metaboxes' );
Perfektes Wissen
// slider_metaboxes_html , function for create HTML function slider_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Custom link'), 'slider_metaboxes_html', 'slider', 'normal', 'high'); } //add_meta_boxes_slider => add_meta_boxes_{custom post type} add_action( 'add_meta_boxes_slider', 'slider_metaboxes' );
Perfect knowledge
Ok,ich habeeinige benutzerdefinierte Beitragstypen undeinige Taxonomien registriert.Jetzt kannichfürmein ganzes Lebennicht herausfinden,welchen Codeichbrauche,ummeinem benutzerdefinierten Beitragstypein benutzerdefiniertes Feld hinzuzufügen.
Ichbenötigeein Dropdown-Menü undeinen einzeiligen Textbereich.Ichbrauche aber auch separate Felderfür Beitragstypen.Angenommen,Beitragstyp 1 hat 3 Felder und Beitragstyp 2 hat 4 Felder,aber die Felder sind unterschiedlich.
Irgendwelche Tipps würden helfen,wennichmir den Codex angesehen undetwasgefunden habe,aber keinen Sinn daraus ziehen kann,wasichmeiner Datei
hinzufügenmussfunctions.php