前提・実現したいこと
カスタム投稿「works」で作った投稿のURLはデフォルトで「xxx.com/works/post-slug」ですが、これをドメイン直下「xxx.com/post-slug」に変えたいです。
発生している問題・エラーメッセージ
エラーはなく、ただ、書き換えたURLにアクセスすると404ERRORになってしまいます。
該当のソースコード
PHP
1function generateCustomPostLink($link, $post){ 2 if($post->post_type === 'works'){ 3 // 投稿IDに書き換えたパーマリンク文字列を返す 4 return home_url('/'.$post->post_name.'/'); 5 } else { 6 return $link; 7 } 8} 9function addRewriteRules($rules){ 10 // 書き換えたパーマリンクに対応したクエリルールを追加 11 $new_rule = array( 12 '/?$' => 'index.php?post_type=works&p=$matches[1]' 13 ); 14 // ルール配列に結合 15 return $new_rule + $rules; 16} 17add_filter('post_type_link', 'generateCustomPostLink', 1, 2); 18add_filter('rewrite_rules_array', 'addRewriteRules');
試したこと
調べて出てきたコードをもとに function.php を書いてみたのですが、ドメイン直下に書き換わったものの404エラーになってしまいます。
どうすれば、404でなくなるか、ご助力いただけないでしょうか。
php
1function generateCustomPostLink($link, $post){ 2 if($post->post_type === 'works'){ 3 // スラッグに書き換えたパーマリンク文字列を返す 4 return home_url('/'.$post->post_name.'/'); 5 } else { 6 return $link; 7 } 8} 9function custom_rewrite_tag() 10{ 11 add_rewrite_tag('%myvalue%', '([^&]+)'); 12} 13add_action('init', 'custom_rewrite_tag', 10, 0); 14function addRewriteRules($rules){ 15 //追加するリライトルールの配列を初期化 16 $new_rules = array(); 17 //追加するリライトルールの配列を作成 18 $new_rules['/([^/]+)/?$'] = 'index.php?post_type=works&myvalue=$matches[1]'; 19 // ルール配列に結合 20 return $new_rules + $rules; 21} 22add_filter('post_type_link', 'generateCustomPostLink', 1, 2); 23add_filter('rewrite_rules_array', 'addRewriteRules');
こちらに書き換えてみましたが、404のままでした。
?works=slug で個別ページが表示されるので
php
1function generateCustomPostLink($link, $post){ 2 if($post->post_type === 'works'){ 3 // 投稿IDに書き換えたパーマリンク文字列を返す 4 return home_url('/'.$post->post_name.'/'); 5 } else { 6 return $link; 7 } 8} 9function addRewriteRules($rules){ 10 $new_rules = array(); 11 $new_rules['/([^/]+)/?$'] = 'index.php?works=$matches[1]'; 12 return $new_rules + $rules; 13} 14add_filter('post_type_link', 'generateCustomPostLink', 1, 2); 15add_filter('rewrite_rules_array', 'addRewriteRules');
としましたが、該当ページは404のままでした。
ほかのページは問題なく表示されていますが、やろうとしていることがダメなんでしょうか?
補足情報(FW/ツールのバージョンなど)
Firefox 最新版

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/09 23:56