it-swarm.com.de

Benutzerdefinierter Beitragstyp: Setzen Sie post_title gleich einem benutzerdefinierten Beitragstypfeld

Ich habe einen benutzerdefinierten Post-Typ für Mitarbeiter in einem Unternehmen mit einigen Feldern erstellt, die sie ausfüllen müssen (z. B. E-Mail, Telefon usw.), und ein Auswahlfeld, das einige Werte von einem anderen benutzerdefinierten Post-Typ namens "Unternehmen" übernimmt. Ich habe den Editor für den Beitragstyp "Mitarbeiter" deaktiviert/entfernt, kann ihn jetzt jedoch nicht mehr in der Übersicht anzeigen, da jedem "Mitarbeiter" ein Titel (post_title) fehlt. Wie kann ich den Post_Title für einen Mitarbeiter so einstellen, dass er dem benutzerdefinierten Feld "Name" entspricht?

Da viel Code funktioniert, zeige ich nur den Teil, in dem ich meine Daten für jeden Mitarbeiter speichere:

foreach ($meta_box['fields'] as $field) {
    if(isset($_POST[$field['id']])) {
        if(!add_post_meta($post_id, $field['id'], $_POST[$field['id']], true)) update_post_meta($post_id, $field['id'], $_POST[$field['id']]);
    }

}

Ich habe ein Array mit allen Daten und speichere dann mit den richtigen Werten für jedes Feld, aber kann ich hier sagen, dass:

If($field[‘id’] == ‘emp_name’) {
    Set($post_title = $field[‘id’]); 
}

Oder sowas ähnliches?

Jede Hilfe oder Anregungen wäre sehr dankbar.

Vielen Dank - Mestika

2
Mestika

Ich würde einfach the_title filtern, damit die entsprechenden benutzerdefinierten Felddaten für Ihren benutzerdefinierten Beitragstyp ausgegeben werden:

<?php
function theme_slug_filter_the_title( $title ) {
    global $post;
    if ( 'employee' == get_post_type( $post ) ) {
        $custom = ( get_post_custom( $post->ID ) ? get_post_custom( $post->ID ) : false );
        $custom_title = ( isset( $custom['name'][0] ) ? $custom['name'][0] : '(Name Not Entered)' );
        return $custom_title;
    } else {
        return $title;
    }
}
add_filter( 'the_title', 'theme_slug_filter_the_title' );
?>

Dadurch wird der Beitragstitel durch den Wert für das benutzerdefinierte Feld "Name" für Ihren benutzerdefinierten Beitragstyp ersetzt. Wenn kein "Name" eingegeben wird, wird "(Name nicht eingegeben)" zurückgegeben.

(Natürlich müssen Sie die Werte für get_post_type() und $custom['name'] entsprechend ersetzen.)

3
Chip Bennett