Zugriff auf Meta-Box überprüften Wert in einer anderen Datei

Also muss ich grundsätzlich auf den Wert von checked () zugreifen, um verschiedene Template-Teile in meine single.php-Datei zu laden.

Das ist meine Meta-Box:

ID, '_my_theme_post_template', true ); // Default template for new posts if( empty( $template ) ) { $template = 'default'; } wp_nonce_field( 'save_post_template', 'post_template' ); ?> 
<?php } function my_theme_save_post_template( $post_id ) { if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if( !isset( $_POST['post_template'] ) || !wp_verify_nonce( $_POST['post_template'], 'save_post_template' ) ) { return; } if( !current_user_can( 'edit_post' ) ) { return; } if( isset( $_POST['_my_theme_post_template'] ) ) { update_post_meta( $post_id, '_my_theme_post_template', esc_attr( strip_tags( $_POST['_my_theme_post_template'] ) ) ); } } add_action( 'save_post', 'my_theme_save_post_template' ); function my_theme_get_post_template_for_template_loader( $template ) { $post = get_queried_object(); if ( $post ) { $template = get_stylesheet_directory() . "/single.php"; } return $template; }

Nun muss ich auf die checked () Werte zugreifen damit ich in meiner single.php verschiedene Teile entsprechend dem Wert checked () laden kann, so:

  switch ( $checked ) { case checked( $template, 'template-1' ): get_template_part( 'inc/post-loops/template-1' ); break; case checked( $template, 'template-2' ) : get_template_part( 'inc/post-loops/template-2' ); default: get_template_part( 'inc/post-loops/template-1' ); break; } 

Solutions Collecting From Web of "Zugriff auf Meta-Box überprüften Wert in einer anderen Datei"

Sie haben die switch statement noch nicht ganz im Griff, lesen Sie hier .

 $template = get_post_meta( get_the_ID(), '_my_theme_post_template', true ); switch ( $template ) { case 'template-2': get_template_part( 'inc/post-loops/template-1' ); break; case 'template-1': get_template_part( 'inc/post-loops/template-2' ); break; default: // Neither values matched, do something else? break; } 

Wenn Ihre Einstellungen per Post in den Post-Meta-Feldern gespeichert werden, können Sie mit get_post_meta Ihre Einstellungen abrufen und mit ihnen arbeiten.

Beispiel:

 $tmplt = get_post_meta($postID, 'template', true); switch ($tmplt) { case 1: get_template_part( 'inc/post-loops/template-1' ); break; case 2: get_template_part( 'inc/post-loops/template-2' ); break; default: get_template_part( 'inc/post-loops/template-1' ); break; }