customerと言うカスタム投稿で
https://hogehoge.hoge/customer/voice.html
としたいのですが現状
https://hogehoge.hoge/customer/012.html/
となってしまいます。
下記サイトを参考に
https://webcre8tor.com/snippets/custom-post-type-url.html
https://memocarilog.info/wordpress/theme-custom/3909
下記のコードをfunctions.phpに追加したのですが
投稿IDの番号と最後にスラッシュが付いて404エラーになってしまいました。
これをスラッグ.htmlで最後にスラッシュ無しで404エラーを回避するにはどうすればよいでしょうか??
旧コード
php
1add_action('init', 'myposttype_customer_rewrite'); 2function myposttype_customer_rewrite() { 3 global $wp_rewrite; 4 5 $queryarg = 'post_type=customer&p='; 6 $wp_rewrite->add_rewrite_tag('%customer_id%', '([^/]+)',$queryarg); 7 $wp_rewrite->add_permastruct('customer', '/customer/%customer_id%.html', false); 8 9} 10add_filter('post_type_link', 'myposttype_customer_permalink', 1, 3); 11function myposttype_customer_permalink($post_link, $id = 0, $leavename) { 12 global $wp_rewrite; 13 $post = &get_post($id); 14 if ( is_wp_error( $post ) ) 15 return $post; 16 $newlink = $wp_rewrite->get_extra_permastruct($post->post_type); 17 $newlink = str_replace('%'.$post->post_type.'_id%', $post->ID, $newlink); 18 $newlink = home_url(user_trailingslashit($newlink)); 19 return $newlink; 20}
上記コードはスラッグではなく、IDで表示する方法のようなので再度調べて新しくコードを追加
しかし、
https://hogehoge.hoge/%post_tag%/%postname%.html
のようになり、404エラーのままで先に進めないです。
10/20 12:00追記
コードを見直して
https://hogehoge.hoge/customer/voice.html
を表示できるように改良できました
しかし、404エラーになってしまいます。
https://hogehoge.hoge/customer/voice
でアクセスアクセスすると問題なく表示される
10/20 12:05追記
ワードプレス管理画面のパーマーリンク設定の保存ボタンを押したところ
https://hogehoge.hoge/customer/voice.html/
となり
TOPページに飛ばされるようになり
また振り出しに戻ってしまいました・・・
新コード
php
1#バージョンアップ版 2 global $wp_rewrite; 3 $wp_rewrite->use_trailing_slashes=false;//最後のスラッシュ無し 4 $queryarg = 'customer&p=';//クエリ作成 5 $wp_rewrite->add_rewrite_tag('%customer%', '([^/]+)', $queryarg); 6 $customer_struct='/customer/%customer%.html'; 7 $wp_rewrite->add_permastruct('customer', $customer_struct); 8#旧 9global $wp_rewrite; 10 $wp_rewrite->use_trailing_slashes=false;//最後のスラッシュ無し 11 $queryarg = 'post_type=customer&p=';//クエリ作成 12 $wp_rewrite->add_rewrite_tag('%post_tag%', '([^/]+)', $queryarg); 13 $wp_rewrite->add_permastruct('customer', '%post_tag%/%postname%.html', false);
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/20 04:44