Filtern Sie die URL von next_posts_link & previous_posts_link

Ich arbeite mit dem qTranslate-Plugin , um eine mehrsprachige Website zu erstellen. Das Plugin macht eine großartige Arbeit der Übersetzung, außer auf den Template-Tags next_posts_link & previous_posts_link .

Wenn ein Benutzer eine andere Sprache ausgewählt hat, sollte die URL geändert werden von:

http://mysite.com/test/page/2 (für Standardsprache)

zu

http://mysite.com/fr/test/page/2 (für Französisch)

Das Plugin bietet functionen zur Modifikation / Übersetzung von URLs mit der function qtrans_convertURL($url) . Das Problem, das ich habe, ist einen geeigneten Hook oder Filter zu finden, mit dem ich die URL-Ausgabe der Template-Tags next_posts_link & previous_posts_link ändern kann.

Die nächsten zwei WordPress-Filter, die ich gefunden habe, sind:

 add_filter('next_posts_link_attributes', 'my_next_attr'); add_filter('previous_posts_link_attributes', 'my_prev_attr'); 

Irgendwelche Tipps wären sehr willkommen.

Solutions Collecting From Web of "Filtern Sie die URL von next_posts_link & previous_posts_link"

Führen Sie einen Filter auf get_pagenum_link und Sie sollten in der Lage sein zu tun, was Sie wollen.

Die function next_posts_link / previous_posts_link funktioniert für jeden Aufruf, der wiederum andere functionen get_pagenum_link , die schließlich zu der function get_pagenum_link , die einen Filter mit dem gleichen Namen bereitstellt.

Es sollte Ihnen die Kontrolle geben, die Sie brauchen, aber schreiben Sie einen Kommentar, wenn Sie ein Beispiel brauchen.

Für die einzelnen Post-Link-functionen, d. next_post_link / previous_post_link (beachten Sie die nicht-Plural anderen Leser) gibt es einen Filter Hook mit einem passenden Namen, z. next_post_link und previous_post_link ..

Dank dem hilfreichen Tipp von @ t31os kann das Problem mit folgendem Code behoben werden:

 /*************************************************************** * Function qtranslate_next_previous_fix * Ensure that the URL for next_posts_link & previous_posts_link work with qTranslate ***************************************************************/ add_filter('get_pagenum_link', 'qtranslate_next_previous_fix'); function qtranslate_next_previous_fix($url) { return qtrans_convertURL($url); } 

Dieser Fix funktioniert auch für benutzerdefinierte Post-Typen.

Aktualisiert

Diese zweite function stellt sicher, dass die Template-Tags next_post_link und previous_post_link auch bei benutzerdefinierten Post-Typen korrekt gefiltert werden.

 /*************************************************************** * Function qtranslate_single_next_previous_fix * Ensure that the URL for next_post_link & previous_post_link work with qTranslate ***************************************************************/ add_filter('next_post_link', 'qtranslate_single_next_previous_fix'); add_filter('previous_post_link', 'qtranslate_single_next_previous_fix'); function qtranslate_single_next_previous_fix($url) { $just_url = preg_match("/href=\"([^\"]*)\"/", $url, $matches); return str_replace($matches[1], qtrans_convertURL($matches[1]), $url); }