Ändern Sie den Hilfetext "Titel hier eingeben" für einen benutzerdefinierten Beitragstyp


20

Ich habe einen benutzerdefinierten Beitragstyp für ein Verzeichnis erstellt, das am Ende alphabetisch sortiert wird. Ich werde die Beiträge in alphabetischer Reihenfolge nach Titel sortieren, daher möchte ich sicherstellen, dass der Titel als Nachname / Vorname eingegeben wird. Gibt es eine Möglichkeit, diesen Standard-Hilfetext - "Titel hier eingeben" - in meinem benutzerdefinierten Beitrag zu ändern?


1
Für Leute, die sich diese Frage jetzt (seit WordPress 3.1) ansehen, sehen Sie sich bitte einige der neueren Antworten an, um eine bessere Lösung zu finden (mehr "WordPress Way").
Tom Auger

Antworten:


21

Es gibt keine Möglichkeit, diese Zeichenfolge explizit anzupassen. Es wird jedoch durch die Übersetzungsfunktion geleitet und ist daher leicht zu filtern.

Probieren Sie so etwas aus (vergessen Sie nicht, Ihren Beitragstyp zu ändern):

add_filter('gettext','custom_enter_title');

function custom_enter_title( $input ) {

    global $post_type;

    if( is_admin() && 'Enter title here' == $input && 'your_post_type' == $post_type )
        return 'Enter Last Name, Followed by First Name';

    return $input;
}

4
Verwenden Sie den Filter enter_title_here
Pbearne

2
Gut, aber siehe die neuen Antworten unten.
Mark

35

Ich weiß, dass ich ein bisschen zu spät zur Party komme, aber ich möchte hinzufügen, dass der enter_title_hereFilter speziell für diesen Zweck in WordPress v3.1 hinzugefügt wurde.

add_filter( 'enter_title_here', 'custom_enter_title' );
function custom_enter_title( $input ) {
    if ( 'your_post_type' === get_post_type() ) {
        return __( 'Enter your name here', 'your_textdomain' );
    }

    return $input;
}

Ändern Sie your_post_typeund your_textdomain, um Ihren eigenen Beitragstypnamen und Ihre eigene Textdomäne abzugleichen.


5
Kleine Klarstellung. Sollte die Überprüfung von is_admin () nicht erforderlich sein, da dieser Filter nur im Admin-Bereich ausgelöst wird. Wenn Sie aus irgendeinem Grund ein Front-End-Formular hatten, ist es sehr wahrscheinlich, dass Sie diesen Filter trotzdem anwenden möchten.
Philip Downer

7

Es tut uns leid, diese Frage aus dem Grab zu heben, aber seit WordPress 3.1 gibt es eine bessere Lösung. Der enter_title_hereFilter.

function change_default_title( $title ){
    $screen = get_current_screen();

    // For CPT 1
    if  ( 'custom_post_type_1' == $screen->post_type ) {
        $title = 'CPT1 New Title';

    // For CPT 2
    } elseif ( 'custom_post_type_2' == $screen->post_type ) {
        $title = 'CPT2 New Title';

    // For Yet Another CPT
    } elseif ( 'custom_post_type_3' == $screen->post_type ) {
        $title = 'CPT3 New Title';
    }
    // And, so on

    return $title;
}

add_filter( 'enter_title_here', 'change_default_title' );

2
Neue konstruktive Antworten sind immer willkommen.
Pieter Goosen

Dies ist die richtige (moderne) Antwort. Martin-Al merkt sich jedoch, dass er die Gettext-Lokalisierungs-Wrapper-Funktion verwendet. Daher sollte dies ebenfalls sorgfältig untersucht werden: wordpress.stackexchange.com/a/6819/3687
Tom Auger


2

Der beste Weg, um das gewünschte Titelformat zu erhalten, besteht darin, den Titel vollständig zu entfernen und zwei benutzerdefinierte Felder für die Namensteile mit den richtigen Bezeichnungen hinzuzufügen. Wenn der Beitrag gespeichert ist, erstellen Sie den Titel per PHP.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.