Weitere Informationen und den Download findest du auf der offiziellen Anlaufstelle de.wordpress.org
Ergebnis 1 bis 5 von 5
  1. #1
    PostRank: 0
    Registriert seit
    30.12.2016
    Beiträge
    3

    get_post_status

    Über "get_post_status" ist es ja möglich, den Post-Status eines Beitrages auszugeben.

    Auf diese Weise werden aber die englischen Bezeichnungen (publish, draft, auto-draft etc.) angezeigt.

    Wie ist es möglich, diese Ausgabe "einzudeutschen"?

    Vielen Dank
    Geändert von Geronim0 (30.12.2016 um 15:02 Uhr)

  2. #2
    PostRank: 9
    Registriert seit
    28.07.2011
    Beiträge
    1.481
    Indem du den gewünschten deutschen Begriff ausgeben lässt.

    Schau dir mal hier das „basic example“ an: https://codex.wordpress.org/Function...et_post_status

    Gruß
    helix

  3. #3
    PostRank: 0
    Registriert seit
    30.12.2016
    Beiträge
    3
    Vielen Dank, helix.

    Dieses Exempel hatte ich auch schon gefunden.

    Es ist ein gekauftes Theme und der Code sieht so aus:

    PHP-Code:
    echo '<div class="my-post-status status-'.get_post_status().'">'.esc_html__('Status: ''theme').'<span>'.get_post_status().'</span></div>' 
    Dann müsste man aber jedes mal, wenn man es in einem Template einsetzt, die komplette Abfrage machen?


    PHP-Code:
    if ( get_post_status () == 'publish' ) {
            echo 
    'veröffentlicht';
    if ( 
    get_post_status () == 'draft' ) {
            echo 
    'Entwurf'
    usw.

    Ist es nicht möglich, anstelle des get_post_status() eine eigene Funktion zu definieren, mit der man das get_post_status() einfach ersetzt oder dies zentral", über die function.php (und z.B. add_filter), zu "übersetzen"?

    Ich bin in php leider nicht firm und vielleicht denke ich ja auch zu kompliziert und in die falsche Richtung ...

  4. #4
    PostRank: 6 Avatar von b3317133
    Registriert seit
    21.11.2014
    Beiträge
    597
    get_post_status_object() ist die Lösung.
    Code:
    $post_status = get_post_status();
    $post_status_obj = get_post_status_object( $post_status );
    if ( !empty( $post_status_obj ) ) {
        echo $post_status_obj->label; // "eingedeutscht"
    } else {
        echo $post_status; // fallback, sollte nicht vorkommen
    }
    Wahlweise kann man das natürlich auch in functions.php des Themes auslagern, z.B.
    Code:
    function my_get_post_status() {
        $post_status = get_post_status();
        $post_status_obj = get_post_status_object( $post_status );
        if ( !empty( $post_status_obj ) ) {
            return $post_status_obj->label; // "eingedeutscht"
        } else {
            return $post_status; // fallback, sollte nicht vorkommen
        }
    }
    und dann im Theme bei der Ausgabe an der entspr. Stelle aufrufen
    PHP-Code:
    echo '<div class="my-post-status status-'.get_post_status().'">'.esc_html__('Status: ''theme').'<span>'.my_get_post_status().'</span></div>' 
    Geändert von b3317133 (31.12.2016 um 13:46 Uhr) Grund: Ergänzungen

  5. #5
    PostRank: 0
    Registriert seit
    30.12.2016
    Beiträge
    3
    Ich habe es über function.php gelöst und es klappt wunderbar.

    Ich habe mir tagelang den Wolf gesucht und erfolglos rumprobiert. Wenn man weiß wie, kann es so einfach sein.

    Mit einem Problem weniger ins neue Jahr.

    Vielen Dank für die schnelle Hilfe!

    Ich wünsche einen guten Rutsch!

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •