カスタム投稿のパーマリンク
-
【実現したいこと】
カスタム投稿タイプのスラッグを投稿IDにする
【問題点】
最後に添付するコードで、スラッグを投稿IDにできたのですが、言語スイッチャーのリンクが狂います。例えば、en→ja(現在のローケルはen)の場合にjaのリンクには/ja/がついていません。逆に、ja→en(現在のローケルはja)の場合enのリンクに/ja/がついてしまいます。
言語スイッチャーのリンクを正しくしつつ、スラッグを投稿IDにしたいです。何か改善できそうな点があればご教授願いたいです。
【functions.phpへ記載のコード】
function blog_post_type_link( $link, $post ) { if ( $post->post_type === 'blog' ) { // 投稿のメタデータから言語を取得 $post_lang = get_post_meta( $post->ID, '_locale', true ); // 投稿が日本語の場合にのみ '/ja/' を追加 if ( 'ja' === $post_lang ) { return home_url( '/ja/blog/' . $post->ID ); } else { return home_url( '/blog/' . $post->ID ); } } return $link; } add_filter( 'post_type_link', 'blog_post_type_link', 10, 2 ); function blog_rewrite_rules_array( $rules ) { $new_rewrite_rules = array(); // 'ja' 言語のためのカスタムルールを追加 $new_rewrite_rules['ja/blog/([0-9]+)/?$'] = 'index.php?post_type=blog&p=$matches[1]&lang=ja'; // デフォルト言語のためのルールも追加 $new_rewrite_rules['blog/([0-9]+)/?$'] = 'index.php?post_type=blog&p=$matches[1]'; return $new_rewrite_rules + $rules; } add_filter( 'rewrite_rules_array', 'blog_rewrite_rules_array' );
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
- The topic ‘カスタム投稿のパーマリンク’ is closed to new replies.