Speichern Sie ein Array aus dem Drop-down-Menü in der benutzerdefinierten Metabox

Ich habe einen benutzerdefinierten Beitragstyp erfolgreich in ein Dropdown-Feld in einer benutzerdefinierten Metabox übernommen. Bei der Anzeige am Frontend möchte ich jedoch auch einen Link zum eigentlichen Post angeben, nicht nur den Namen des Posts. Also ich vermute, dass ich das als ein Array speichern muss? Ist dies durch ein Drop-Down möglich? Verwirrt darüber, wie ich das angehen sollte. Jede Hilfe wird sehr geschätzt.

Hier ist, was ich bisher habe:

// Add Meta Box To Select Overseeing Pastor add_action('admin_init', 'ministry_select_add_meta'); function ministry_select_add_meta(){ add_meta_box('ministry_select_post', __('Overseeing Pastor'), 'ministry_select_meta', 'ministry', 'side'); } function ministry_select_meta( $post ) { $values = get_post_custom( $post->ID ); $selected = isset( $values['pastor_select'] ) ? esc_attr( $values['pastor_select'][0] ) : ''; wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' ); ?>   'employee', 'position' => 'pastor' ); $pastorList = new WP_Query($args); while ($pastorList->have_posts()) : $pastorList->the_post(); $is_selected = (get_the_title() == $selected) ? 'selected="selected"' : ''; echo ''.get_the_title().''; endwhile; wp_reset_postdata(); ?>  <?php } add_action( 'save_post', 'ministry_select_save' ); function ministry_select_save( $post_id ) { // Stop If Autosaving if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // Stop If Nonce Can't Be Verified if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return; // Stop If Unauthorized User if( !current_user_can( 'edit_post' ) ) return; // Make Sure Data Is Set Then Save if( isset( $_POST['pastor_select'] ) ) update_post_meta( $post_id, 'pastor_select', esc_attr( $_POST['pastor_select'] ) ); } 

Solutions Collecting From Web of "Speichern Sie ein Array aus dem Drop-down-Menü in der benutzerdefinierten Metabox"

Ziemlich einfach. Speichern Sie den Post-Titel nicht, sondern speichern Sie die Post-ID. So können Sie im Frontend alle notwendigen Informationen extrahieren.
Wie get_post( $the_saved_ID_value ); : get_post( $the_saved_ID_value ); oder get_permalink( $the_saved_ID_value ); .

Ändern Sie diese Zeile in Ihrem Code:

 echo ''; 

Anmerkungen:

  • WP_Query erscheint ein bisschen zu viel, get_posts . Viele gute Beispiele für add_meta_box .

  • Überprüfen get_post_meta anstelle von get_post_custom get_post_meta .