it-swarm.com.de

Stellen Sie den Post-Titel automatisch auf den gleichen Wert wie ein Meta-Feld ein

Ich habe "Titel" aus einem benutzerdefinierten Beitragstyp entfernt, den ich erstellt habe. Was dazu führt, dass alle neuen Beiträge den Namen "Auto Draft" bekommen.

Um dies zu umgehen, möchte ich in der Lage sein, einen Wert/Post-Namen aus einer Meta-Box abzurufen und diesen als neuen Titel zu speichern. Ist das möglich?

Dies ist, was ich benutze, und der Wert dieses Metas sollte der neue Titel sein

 function save_title_meta($post_id, $post) {

// verify this came from the our screen and with proper authorization,
// because save_post can be triggered at other times
if ( !wp_verify_nonce( $_POST['meta_noncename'], plugin_basename(__FILE__) )) {
return $post->ID;
}

// Is the user allowed to edit the post or page?
if ( !current_user_can( 'edit_post', $post->ID ))
    return $post->ID;

// OK, we're authenticated: we need to find and save the data
// We'll put it into an array to make it easier to loop though.

$project_meta['_title'] = $_POST['_title'];

// Add values of $project_meta as custom fields

foreach ($project_meta as $key => $value) { // Cycle through the $project_meta array!
    if( $post->post_type == 'revision' ) return; // Don't store custom data twice
    $value = implode(',', (array)$value); // If $value is an array, make it a CSV (unlikely)
    if(get_post_meta($post->ID, $key, FALSE)) { // If the custom field already has a value
        update_post_meta($post->ID, $key, $value);
    } else { // If the custom field doesn't have a value
        add_post_meta($post->ID, $key, $value);

    }
    if(!$value) delete_post_meta($post->ID, $key); // Delete if blank
}

 }

add_action('save_post', 'save_title_meta', 1, 2); // save the custom fields
?>




echo '<input type="hidden" name="meta_noncename" id="meta_noncename" value="' .
wp_create_nonce( plugin_basename(__FILE__) ) . '" />';

// Get the location data if its already been entered
$title = get_post_meta($post->ID, '_title', true);

// Echo out the field
echo '<input type="text" name="_title" value="' . $title  . '" class="widefat" />';
?>
5
INT

Auch wenn Sie title für Ihren benutzerdefinierten Beitragstyp deaktiviert haben, verwendet WordPress den Beitragsnamen post_title für Ihre eigene Titeleingabe und aktualisiert den Beitragstitel entsprechend.

8
TheDeadMedic