前提・実現したいこと
WordPressにて、
投稿(post)とカスタム投稿(スラッグ名:blog)の年別アーカイブページについて、
投稿の年別アーカイブページ"のみ"パーマリンクをカスタマイズしたい。
具体的にはnews/というアドレスを追加して、
通常だと
http://hoge.com/2018/
こうなるところを下記のようにしたい。
http://hoge.com/news/2018/
現状は、このnews/がカスタム投稿年別アーカイブページにもついてしまい、
もともとは下記のパーマリンクが
http://hoge.com/blog/2018
このように出力されてしまう。
http://hoge.com/blog/news/2018
これを
投稿年別アーカイブはこう、
http://hoge.com/news/2018
カスタム投稿年別アーカイブはこうなるようにしたい。
http://hoge.com/blog/2018
条件分岐が必要なのだろうな、ということはわかるのだが、どこにどのような条件を入れれば実現できるのかがわかない状態。
現状で実現ていることと、できていないこと
できていること:
年別アーカイブページにnews/というアドレスを自動で追加する機能
できていないこと(実現したいこと):
news/の出しわけ
投稿ページの年別アーカイブならnews/を出し、
カスタム投稿の年別アーカイブなら出さない。
現状の該当コード(functions.phpにて)
functions.php
1function flush_rules(){ 2 global $wp_rewrite; 3 $wp_rewrite->flush_rules(); 4} 5add_filter('init','flush_rules'); 6 7 8function add_rewrite_date_link_tt150218($rules){ 9 $newrules = array(); 10 $newrules['news/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$'] = 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]', 11 $newrules['news/([0-9]{4})/([0-9]{1,2})/?$'] = 'index.php?year=$matches[1]&monthnum=$matches[2]', 12 $newrules['news/([0-9]{4})/?$'] = 'index.php?year=$matches[1]', 13 return $newrules + $rules; 14} 15add_filter('rewrite_rules_array', 'add_rewrite_date_link_tt150218'); 16 17 18function date_link_replace_tt150218($link){ 19 $wp_home_url = home_url(); 20 $link = str_replace( $wp_home_url, $wp_home_url.'/news', $link); 21 return $link; 22} 23add_filter('year_link', 'date_link_replace_tt150218'); 24add_filter('month_link', 'date_link_replace_tt150218'); 25add_filter('day_link', 'date_link_replace_tt150218');
###使用テンプレート名
投稿年別アーカイブ:archive.php
カスタム投稿年別アーカイブ:archive-blog.php
もしわかる方がおりましたら、ご教示ください。
足りない情報等ありましたら、おしらせください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。