質問: next_posts_linkとprevious_posts_linkのurlをフィルタリングする qtranslateプラグイン を使って多言語ウェブサイトを作成しています。このプラグインはnext_posts_linkとprevious_posts_linkテンプレートタグを除いて翻訳の素晴らしい仕事をします。ユーザーが別の言語を選択した場合、urlは次のように変わります。 http://mysite.com/test/page/2 (デフォルトの言語の場合)に http://mysite.com/fr/test/page/2 (フランス語用)プラグインはqtrans_converturl($url)関数を使用してurlの修正/翻訳のための機能を提供します。私が抱えている問題は、next_posts_linkおよびprevious_posts_linkテンプレートタグによって出力されるurlを変更できるようにする適切なフックまたはフィルタを見つけることです。私が見つけた最も近い2つのwordpressフィルタは以下のとおりです。add_filter('next_posts_link_attributes', 'my_next_attr'); add_filter('previous_posts_link_attributes', 'my_prev_attr'); どんなヒントでも大歓迎です。
回答: @ t31osからの役に立つヒントのおかげで、この問題は以下のコードで修正することができます。/*************************************************************** * 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); } この修正はカスタム投稿タイプでも機能します。 更新しました この2番目の関数は、next_post_linkとprevious_post_linkテンプレートタグがカスタム投稿タイプでも正しくフィルタリングされるようにします。/*************************************************************** * 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); }