Übermitteln von benutzerdefinierten Beitragstypen mit benutzerdefinierten Feldern aus dem Front-End-Formular

Ich versuche einen benutzerdefinierten Post mit 2 benutzerdefinierten Feldern zu erstellen. Jetzt habe ich die funktionierenden benutzerdefinierten Post-Typen und das Arbeitsformular am Front-End über eine Template-Seite. Das Problem ist, ich kann nicht das benutzerdefinierte Feld arbeiten , dh das benutzerdefinierte Feld kann nicht über Front-End-Formular gespeichert werden, noch zeigen Sie den Wert dieses benutzerdefinierten Felds in single.php Seite. Jetzt kann ich Beiträge vom Front-End nur mit Titel und Inhalt senden.

Hier sind die benutzerdefinierten Post-Typen und Formulare, die ich in functions.php habe

function ty_post_type_init() { $labels = array( 'name' => _x('Betting Tips', 'the custom posts', 'your_text_domain'), 'singular_name' => _x('Betting Tips', 'the custom post', 'your_text_domain'), 'add_new' => _x('Add New', 'custom_posts', 'your_text_domain'), 'add_new_item' => __('Add New Betting Tips', 'your_text_domain'), 'edit_item' => __('Edit Betting Tips', 'your_text_domain'), 'new_item' => __('New Betting Tips', 'your_text_domain'), 'all_items' => __('All Betting Tips', 'your_text_domain'), 'view_item' => __('View Betting Tips', 'your_text_domain'), 'search_items' => __('Search Betting Tips', 'your_text_domain'), 'not_found' => __('No betting tips found', 'your_text_domain'), 'not_found_in_trash' => __('No betting tips found in Trash', 'your_text_domain'), 'parent_item_colon' => '', 'menu_name' => __('Betting Tips', 'your_text_domain') ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => array( 'slug' => _x( 'custom_posts', 'URL slug', 'your_text_domain' ) ), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ) ); register_post_type('custom_posts', $args); flush_rewrite_rules(); } add_action( 'init', 'ty_post_type_init' ); function ty_front_end_form() { ?> 



wp_strip_all_tags( $title ), 'post_content' => $description, 'post_category' => $_POST['cat'], 'custom_field_one' => $custom_field_one, // 'tags_input' => $tags, 'post_status' => 'publish', 'post_type' => custom_posts ); wp_insert_post($post); $location = home_url(); echo ""; exit; } // end IF }

und dann habe ich eine Seitenvorlage custom-form.php erstellt

  

Und das ist meine single.php Seite:

 

ID, "custom_field_one", true); ?>

Bitte helfen Sie mir, den Wert eines benutzerdefinierten Feldes in single.php durch das Frontend-Formular zu erhalten.

Danke vielmals!

Solutions Collecting From Web of "Übermitteln von benutzerdefinierten Beitragstypen mit benutzerdefinierten Feldern aus dem Front-End-Formular"

Ich verstehe nicht, warum Sie einen Shortcode registriert haben, wenn Sie ihn nicht verwenden. Der Code Ihrer custom-form.php kann sein:

 < ?php /** * Template Name: My Custom Form */ get_header(); echo do_shortcode('custom_posts'); get_footer(); ?> 

Nun zurück zu Ihrer Frage, wie Sie den benutzerdefinierten Feldwert speichern und / oder erhalten können. Nun, Ihre Methode, den benutzerdefinierten Feld (Meta) -Wert zu speichern, ist völlig falsch. Ich frage mich, was Sie in SERPs bekommen haben, als Sie nach einer verwandten Suchanfrage gesucht haben, oder haben Sie sogar gesucht?

Um den post_meta Wert zu speichern, post_meta zuerst die ID des neu erstellten post_meta und speichern Sie den benutzerdefinierten post_meta . Um die Antwort zu verkürzen, füge ich nur den entsprechenden Code hinzu

 $post = array( 'post_title' => wp_strip_all_tags( $title ), 'post_content' => $description, 'post_category' => $_POST['cat'], 'tags_input' => $tags, 'post_status' => 'publish', 'post_type' => 'custom_posts' ); $post_id = wp_insert_post($post); add_post_meta( $post_id, 'custom_field_one', $custom_field_one, false ); 

Sie können dies auch tun

 $post = array( 'post_title' => wp_strip_all_tags( $title ), 'post_content' => $description, 'post_category' => $_POST['cat'], 'tags_input' => $tags, 'post_status' => 'publish', 'post_type' => 'custom_posts', 'meta_input' => array( 'custom_field_one' => $custom_field_one ) ); $post_id = wp_insert_post($post); 

Disclaimer: Ich bin mir nicht sicher über den Rest des Codes, sondern nur assistiert mit dem, was gefragt wurde.