Support » Allgemeine Fragen » englische Wörter in der URL ändern

  • Gelöst timholz

    (@timholz)


    Hallo

    In meiner comments.php (eigenes Thema) habe ich eine Pagination eingebaut.
    Die URL zeigt:
    https://zufall/comment-page-4/#comments

    Wie kann ich WordPress anweisen deutsche Wörter zu nehmen, also:
    https://zufall/kommentar-seite-4/#kommentare

    Was ich bisher versucht habe:
    1.
    In der wp-congig.php habe ich define('WPLANG', 'de_DE'); plaziert.
    keine Wirkung.

    2.

    /*aus pages wird seite*/
    function re_rewrite_rules() {
        global $wp_rewrite;
        $wp_rewrite->author_base        = 'autor';
        $wp_rewrite->search_base        = 'suche';
        $wp_rewrite->comments_base      = 'kommentare';
        $wp_rewrite->pagination_base    = 'seite';
        $wp_rewrite->flush_rules();
    }
    add_action('init', 're_rewrite_rules');

    Hat nur auf pages Auswirkung aber nicht auf comment-page etc.

    Weiss jemand wie ich das hinbekommen kann?

    Danke für euer Interesse.
    theo

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Thread-Starter timholz

    (@timholz)

    Ok, den ersten Teil habe ich herausgefungen:

    /*pages und comment-page werden mit dieser Funktion deutsch*/
    function re_rewrite_rules() {
        global $wp_rewrite;
        $wp_rewrite->author_base        = 'autor';
        $wp_rewrite->search_base        = 'suche';
        $wp_rewrite->comments_pagination_base = 'kommentar-seite';
        $wp_rewrite->comments_base      = 'kommentar';
        $wp_rewrite->pagination_base    = 'seite';
        $wp_rewrite->flush_rules();
    }
    add_action('init', 're_rewrite_rules');

    Die Ergänzung
    $wp_rewrite->comments_pagination_base = 'kommentar-seite';
    ergibt in der url das gewünschte Resultat.

    Jedoch zeigt $wp_rewrite->comments_base = 'kommentar'; keine Auswirkung zu haben. Die url zeigt immer noch /#comments

    Weiss jemand, wie ich das einstellen kann….?

    Danke für das Interesse.
    theo

    Hi,

    um den get_comments_link zu ändern mache folgendes:

    function neuercommentslink($content) {
        $content = str_ireplace('#comments' , '#kommentar', $content);
        return $content;
    }
    add_filter('get_comments_pagenum_link' , 'neuercommentslink');

    Um den direkten Link zu einem Kommentar zu ändern also /#comment-56 in etwas anderes benutze folgendes:

    function direktercommentlink( $link  ) {
         global $post;
        $hash = '#diskotier';
        return get_permalink( $post->ID ) . $hash;
    }
    add_filter( 'get_comments_link', 'direktercommentlink', 99 );

    Gruss

    Thread-Starter timholz

    (@timholz)

    Hi
    Vielen Dank für die Antwort und die Funktionen.
    Habe beides ausprobiert, leider ohne Erfolg.
    viele Grüsse
    theo

    Hi theo,

    dann heißen diese Funktionen in deinem Theme anders, die die Ausgabe lösen oder dein parent-theme benutzt diese schon und überschreibt diese im nachhinein.

    Ich selbst habe das eben mit einem Standardtheme getestet und funktioniert einwandfrei. Ein Cacheplugin hast du nicht zufällig zu laufen?

    Mit folgender Funktion kannst du dir die mal hooks im footer ausgeben lassen, um zu sehen, welche davon deine comments beeinflussen:
    https://gist.github.com/toscho/867302

    Thread-Starter timholz

    (@timholz)

    Hi,
    Sorry, dass ich mich erst jetzt melde.
    War heute mit meiner Enkelin unterwegs.

    Danke für deine Mühe. Ich schaue mir die Sache noch einmal gründlich an.
    Ich habe es ebenfalls mit 2015 ausprobiert und die erste function ist ok. Beim direkten link jedoch erhalte ich auch #comment-xx.
    Noch eine Anmerkung:
    $content = str_ireplace('#comments' , '#kommentar', $content);
    Ich nehme an, dass es nicht ireplace sondern replace heisst.

    viele Grüsse
    theo

    p.s.: Info: ich habe das theme selbst aufgebaut und es läuft vorerst localhost, ohne cache plugin.

    Thread-Starter timholz

    (@timholz)

    Sorry wegen str_ireplace ich hab mich geirrt.
    grüsse
    theo

    Ich habe es ebenfalls mit 2015 ausprobiert und die erste function ist ok.

    2015?

    Also die 1. Funktion funktioniert bei dir? Schön.

    Die 2. Funktion hat bei mir im Testsystem auch funktioniert. Probiere es aus und schalte parallel WP_DEBUg ein.

    Thread-Starter timholz

    (@timholz)

    Guten Tag,
    Hier ist die einfache Lösung für mein Problem:

    <div class="nav-links">
    	<?php paginate_comments_links(array(
    		'add_fragment' => '#kommentare',
    		'prev_text'    => __('<strong class="pfeil">< </strong>'),
    		'next_text'    => __('<strong class="pfeil"> ></strong>'),
    		'type'         => 'list'
    		)); ?>
    </div><!-- .comment-navigation -->

    Die Zeile mit add_fragment ändert #comments in #kommentare.
    Ich bin mir fast sicher, dass auch der direkte Link im array eingestellt werden kann.

    Danke für euer Interesse.
    theo

    p.s.: 2015 > twenty fifteen
    ——————————-
    Im WordPress Codex:
    paginate comment links
    heisst es bei den Parametern: «needs further completion».
    Ich nehme an, dass diese Funktion noch ausgebaut wird.

    Sehr schön.

    Beitrag als gelöst markiert.

    Thread-Starter timholz

    (@timholz)

    Danke für die Hilfe.

    Thread-Starter timholz

    (@timholz)

    Der Vollständigkeit halber hier noch eine Variante, welche auch funktioniert:

    add_filter( 'get_comment_link', function( $link, \WP_Comment $comment )
    {
        return str_replace(
            '#comment-',
            '#wunschname-',
            $link
        );
    
    }, 10, 2 );

    Der Vollständigkeit halber:

    Ich finde den Code etwas umständlich.

    Daher würde ich folgendes machen, aber das ist jedem selbst überlassen.

    add_filter( 'get_comment_link', 'meinefunctioncommentlink', 10, 2 );
    
    function meinefunctioncommentlink( $link, \WP_Comment $comment )
    {
        return str_replace(
            '#comment-',
            '#wunschname-',
            $link
        );
    
    }
    Thread-Starter timholz

    (@timholz)

    Danke, und ja, das ist besser.

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Das Thema „englische Wörter in der URL ändern“ ist für neue Antworten geschlossen.