Ich versuche, benutzerdefinierte Felder für einen benutzerdefinierten Posttyp zu speichern. Wenn ich die Daten speichere, wird das Wort “Array” angezeigt, als ob ich versuche, ein Array zu echozieren. Ich habe einen var_dump gemacht und es gibt mir folgendes:
Array (1) {
- Hinzufügen von validation und Fehlerbehandlung beim Speichern von benutzerdefinierten Feldern?
- Post Formats im Kontext der database 'Post speichern' function
- Kann $ _REQUEST verwendet werden, um zu bestimmen, woher die gespeicherte Postaktion kommt?
- Warum kann ich save_posts nicht nach admin_init einbinden?
- Wie ändere ich den Post-Titel in meinem benutzerdefinierten Plug-In, der ausgetriggers wird, wenn 'save_post' aufgerufen wird?
- function zum Publizieren ausführen UND speichern (nicht nur speichern)
[0] =>
Zeichenfolge (5) “Hallo”
}
Also habe ich versucht, es als $ _POST [‘catagory’] [0] wiederzugeben und es gibt mir das gleiche Ergebnis.
Hier ist mein Code:
/* * create meta box and fields for catagories */ function littlereds_menu_catagoriesMetaBox() { add_meta_box('littlereds_menu_catagoriesMeta', "Catagories", "littlereds_menu_catagoriesCallback", "littlereds_cat", "normal"); } add_action('add_meta_boxes', 'littlereds_menu_catagoriesMetaBox'); function littlereds_menu_catagoriesCallback($post) { wp_nonce_field(basename(__FILE__), 'littlereds_catagoryNonce'); $littlereds_storedMeta = get_post_meta($post->ID); ?> <input name="catagory" id="catagory" type="text" value="" />
<?php } /* * Save Catagories */ function littlereds_save_catagoriesMetaData($post_id) { //Check the save status $is_autosave = wp_is_post_autosave($post_id); $is_revision = wp_is_post_revision($post_id); $is_valid_nonce = (isset($_POST['littlereds_catagoryNonce']) && wp_verify_nonce($_POST['littlereds_catagoryNonce'], basename(__FILE__))) ? 'true' : 'false'; //Exits script based on save status if($is_autosave || $is_revision || !$is_valid_nonce) return; //Save or update field data if(isset($_POST['catagory'])) update_post_meta ($post_id, 'catagory', sanitize_text_field($_POST['catagory'])); } add_action('save_post', 'littlereds_save_catagoriesMetaData');
PS: Gibt es einen einfacheren Weg, hier Code zu schreiben, als 4 Felder vor jeder Zeile zu platzieren? Wenn die Tabulatortaste nicht funktioniert, ist das lästig.
Solutions Collecting From Web of "WordPress Metadaten speichern: Zeigt das Wort Array an, wenn ausgewählt"
- Wie funktionieren die Taxen 'tag' und 'Kategorie' (Standard) 'save_post'?
- Warum wird save_post _ $ (custom_post_type) ausgetriggers, auch wenn ich nicht gerade einen Beitrag speichere?
- classneigenschaft scheint den scope zu verlieren, der an die save_post-Aktion geknüpft ist?
- Nicht definierter Fehler 'post_type' beim Hinzufügen einer neuen Seite
- Benutzerdefinierte Feldwerte werden gelöscht
- update_post_meta und update_field arbeiten nur beim Speichern des Posts
- Wie erhalte ich einen Post-Meta-Wert und gebe ihn an update_option weiter, wenn ein Beitrag erstellt oder aktualisiert wird?
- Erzwingen, dass Post-Slug automatisch vom Titel beim Speichern generiert wird
Das Problem liegt also nicht beim Speichern, sondern darin, wie die gespeicherten Daten zurückgeladen werden … Siehe Dokumentation für get_post_meta : Wenn Sie keinen Metadatenschlüssel angeben , gibt die function alle Metadaten für diesen Beitrag zurück als ein Array zurückgegeben werden. Versuchen Sie es stattdessen:
$littlereds_storedMeta = get_post_meta($post->ID, 'catagory', true);
Beachten Sie den letzten Parameter “true”, der die function dazu zwingt, einen einzelnen Wert anstatt wieder ein Array zurückzugeben.
Hoffe das hilft!