it-swarm.com.de

Wie dupliziere ich (mehrere Meta-Boxen)?

Ich habe ein Meta-Box-Feld erstellt, das funktioniert, aber jetzt muss ich noch eins hinzufügen. In den letzten Stunden habe ich versucht, jedes Stück zu mischen, es zu duplizieren, einige Teile zu übernehmen, zu googeln, zu suchen und kein Glück zu haben. Das zweite Meta-Feld wird angezeigt, aber es wird nicht gespeichert. Das ist also meine erste Meta-Box. Kann mir jemand bei der Erstellung von zusätzlichen helfen. Was muss von der ersten zur zweiten hinzugefügt werden/oder entfernt werden. Einige Teile werden hier nicht gut angezeigt, daher sauberere Version http://Pastebin.com/hYiYj1ZH

/* Starten Sie unsere Meta-Box-Setup-Funktion auf dem Post-Editor-Bildschirm. */
 add_action ('load-post.php', 'sw_post_meta_boxes_setup'); 
 add_action ('load-post-new.php', 'sw_post_meta_boxes_setup'); 
 
/* Meta Box Setup Funktion. */
 function sw_post_meta_boxes_setup () {
 
/* Fügen Sie Meta-Boxen am Hook 'add_meta_boxes' hinzu. */
 add_action ('add_meta_boxes', 'sw_add_post_meta_boxes'); 
 
/* Speichere Post-Meta am Haken 'save_post'. */
 add_action ('save_post', 'sw_save_video_box_meta', 10, 2); 
 
} 
 
/* Erstelle ein oder mehrere Meta Felder, die auf dem Post-Editor-Bildschirm angezeigt werden sollen. */
 Funktion sw_add_post_meta_boxes () {
 
 add_meta_box (
 'sw_video_player', // Eindeutige ID 
 esc_html __ ('Video Box', ' video-text '), // Titel 
' sw_video_box_meta_box ', // Rückruffunktion 
' job_listing ', // Verwaltungsseite (benutzerdefinierter Beitragstyp) 
' normal ',// Context 
 'High' // Priority 
; 
 
 Add_meta_box (
 'Sw_face_player', // Unique ID 
 esc_html __ ('Facebook Event Box', 'Videotext'), // Titel 
 'sw_face_box_meta_box', // Rückruffunktion 
 'Job_listing', // Admin-Seite (benutzerdefinierter Beitragstyp) 
 'normal', // Kontext 
 'hoch' // Priorität 
); 
 
 
} 
 
/* Post-Meta-Box anzeigen. */
 if (! function_exists ('sw_video_box_meta_box')) {
 function sw_video_box_meta_box ($ object, $ box) {
 
 wp_nonce_field (basename (__FILE__), 'sw_video_box_nonce'); 
 
 
 _ e ("Code zum Einbetten von Videos/Wiedergabelisten hier platzieren", 'sw-text'); 
 
 
echo esc_html __ (get_post_meta ($ object-> ID, 'sw_video_box', true)); } } /* Sparen Die Post-Metadaten der Meta-Box. */ if (! function_exists ('sw_save_video_box_meta')) { function sw_save_video_box_meta ($ post_id, $ post) { /* Überprüfen Sie das Nonce, bevor Sie fortfahren . */ if (! isset ($ _POST ['sw_video_box_nonce']) ||! wp_verify_nonce ($ _POST ['sw_video_box_nonce'], basename (__FILE__))) return $ post_id; /* Hole das Objekt vom Typ post. */ $ post_type = get_post_type_object ($ post-> post_type); /* Überprüfen Sie, ob der aktuelle Benutzer berechtigt ist, den Beitrag zu bearbeiten. */ if (! current_user_can ($ post_type-> cap-> edit_post, $ post_id)) return $ post_id; /* Hole die geposteten Daten und bereinigen Sie es für die Verwendung als HTML-Klasse. */ $ new_meta_value = (isset ($ _POST ['sw_video_player'])? balanceTags ($ _POST ['sw_video_player']): ''); /* Get der Metaschlüssel. */ $ meta_key = 'sw_video_box'; /* Ermittelt den Metawert des benutzerdefinierten Feldschlüssels. */ $ meta_value = get_post_meta ($ post_id, $ meta_key, true); /* Wenn ein neuer Metawert hinzugefügt wurde und kein vorheriger Wert vorhanden war, fügen Sie ihn hinzu. */ if ($ new_meta_value && '' == $ meta_value) add_post_meta ($ post_id, $ meta_key, $ new_meta_value, true); /* Wenn der neue Meta-Wert nicht mit dem alten übereinstimmt, aktualisieren Sie ihn. */ elseif ($ new_meta_value && $ new_meta_value! = $ meta_value) update_post_meta ($ post_id, $ meta_key, $ new_meta_value); /* Wenn da Ist kein neuer Meta-Wert vorhanden, aber ein alter Wert vorhanden, löschen Sie diesen. */ elseif ('' == $ new_meta_value && $ meta_value) delete_post_meta ($ post_id, $ meta_key, $ meta_value); }}
1
Max

Sie haben die Meta-Speicheraktion für die Facebook-Meta-Box nicht hinzugefügt.

<?php
/* Fire our meta box setup function on the post editor screen. */
add_action( 'load-post.php', 'sw_post_meta_boxes_setup' );
add_action( 'load-post-new.php', 'sw_post_meta_boxes_setup' );

/* Meta box setup function. */
function sw_post_meta_boxes_setup() {

  /* Add meta boxes on the 'add_meta_boxes' hook. */
  add_action( 'add_meta_boxes', 'sw_add_post_meta_boxes' );

  /* Save post meta on the 'save_post' hook. */
  add_action( 'save_post', 'sw_save_video_box_meta', 10, 2);
  add_action( 'save_post', 'sw_save_face_box_meta', 10, 2);

}

/* Create one or more meta boxes to be displayed on the post editor screen. */
function sw_add_post_meta_boxes() {

  add_meta_box(
    'sw_video_player',      // Unique ID
    esc_html__( 'Video Box', 'video-text' ),    // Title
    'sw_video_box_meta_box',   // Callback function
    'job_listing',// Admin page (custom post type)
    'normal',       // Context
    'high'          // Priority
  );

    add_meta_box(
    'sw_face_player',      // Unique ID
    esc_html__( 'Facebook Event Box', 'video-text' ),    // Title
    'sw_face_box_meta_box',   // Callback function
    'job_listing',// Admin page (custom post type)
    'normal',       // Context
    'high'          // Priority
  );


}

/* Display the post meta box. */
if ( !function_exists( 'sw_video_box_meta_box' ) ) {
function sw_video_box_meta_box( $object, $box ) { ?>

  <?php wp_nonce_field( basename( __FILE__ ), 'sw_video_box_nonce' ); ?>

  <p>
    <label for="sw_video_player"><?php _e( "Place Video/Playlist Embed Code Here.", 'sw-text' ); ?></label>
    <br />
    <textarea class="widefat" name="sw_video_player" id="sw_video_player" cols="50" rows="5"><?php echo esc_html__( get_post_meta( $object->ID, 'sw_video_box', true ) ); ?></textarea>
  </p>

<?php }

// Facebook Meta Box
if ( !function_exists( 'sw_face_box_meta_box' ) ) {
function sw_face_box_meta_box( $object, $box ) { ?>

  <?php wp_nonce_field( basename( __FILE__ ), 'sw_face_box_nonce' ); ?>

  <p>
    <label for="sw_face_player"><?php _e( "Place FB Video/Playlist Embed Code Here.", 'sw-text' ); ?></label>
    <br />
    <textarea class="widefat" name="sw_face_player" id="sw_face_player" cols="50" rows="5"><?php echo esc_html__( get_post_meta( $object->ID, 'sw_face_box', true ) ); ?></textarea>
  </p>

<?php }

    }
}


/* Save the meta box's post metadata. */
if ( !function_exists( 'sw_save_video_box_meta' ) ) {
function sw_save_video_box_meta( $post_id, $post ) {

  /* Verify the nonce before proceeding. */
  if ( !isset( $_POST['sw_video_box_nonce'] ) || !wp_verify_nonce( $_POST['sw_video_box_nonce'], basename( __FILE__ ) ) )
    return $post_id;

  /* Get the post type object. */
  $post_type = get_post_type_object( $post->post_type );

  /* Check if the current user has permission to edit the post. */
  if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
    return $post_id;

  /* Get the posted data and sanitize it for use as an HTML class. */
  $new_meta_value = ( isset( $_POST['sw_video_player'] ) ? balanceTags( $_POST['sw_video_player'] ) : '' );

  /* Get the meta key. */
  $meta_key = 'sw_video_box';

  /* Get the meta value of the custom field key. */
  $meta_value = get_post_meta( $post_id, $meta_key, true );

  /* If a new meta value was added and there was no previous value, add it. */
  if ( $new_meta_value && '' == $meta_value )
    add_post_meta( $post_id, $meta_key, $new_meta_value, true );

  /* If the new meta value does not match the old value, update it. */
  elseif ( $new_meta_value && $new_meta_value != $meta_value )
    update_post_meta( $post_id, $meta_key, $new_meta_value );

  /* If there is no new meta value but an old value exists, delete it. */
  elseif ( '' == $new_meta_value && $meta_value )
    delete_post_meta( $post_id, $meta_key, $meta_value );
    } 
}

/* Save the meta box's post metadata. Facebook Box */
if ( !function_exists( 'sw_save_face_box_meta' ) ) {
function sw_save_face_box_meta( $post_id, $post ) {

  /* Verify the nonce before proceeding. */
  if ( !isset( $_POST['sw_face_box_nonce'] ) || !wp_verify_nonce( $_POST['sw_face_box_nonce'], basename( __FILE__ ) ) )
    return $post_id;

  /* Get the post type object. */
  $post_type = get_post_type_object( $post->post_type );

  /* Check if the current user has permission to edit the post. */
  if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
    return $post_id;

  /* Get the posted data and sanitize it for use as an HTML class. */
  $new_meta_value = ( isset( $_POST['sw_face_player'] ) ? balanceTags( $_POST['sw_face_player'] ) : '' );

  /* Get the meta key. */
  $meta_key = 'sw_face_box';

  /* Get the meta value of the custom field key. */
  $meta_value = get_post_meta( $post_id, $meta_key, true );

  /* If a new meta value was added and there was no previous value, add it. */
  if ( $new_meta_value && '' == $meta_value )
    add_post_meta( $post_id, $meta_key, $new_meta_value, true );

  /* If the new meta value does not match the old value, update it. */
  elseif ( $new_meta_value && $new_meta_value != $meta_value )
    update_post_meta( $post_id, $meta_key, $new_meta_value );

  /* If there is no new meta value but an old value exists, delete it. */
  elseif ( '' == $new_meta_value && $meta_value )
    delete_post_meta( $post_id, $meta_key, $meta_value );
    } 
}
2
Howard E