前提
wordpressを使用しています・
バージョンは、6.02
phpバージョンは7.4.2です。
実現したいこと
パーマリンク設定を
投稿名 https://test.com/%postname%/で設定しています。
その場合、カテゴリー一覧ページを表示した際にでるurlの/category/を削除したいです。
例:https://test.com/category/カテゴリーのスラッグ名
functionにて下記コードを入力してやってみましたエラーが
出てしまいます。
function remcat_function($link) {
return str_replace("/category/", "/", $link);
}
add_filter('user_trailingslashit', 'remcat_function');
function remcat_flush_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action('init', 'remcat_flush_rules');
function remcat_rewrite($wp_rewrite) {
$new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2));
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_filter('generate_rewrite_rules', 'remcat_rewrite');
パーマリンク設定を/%category%/%postname%/ にすればうまくいくのですが
この設定にはしたくありません。
なぜパーマリンクを投稿名にした場合は、エラーが出るのでしょうか。
またadd rewrite ruleなどを使用すればエラー解消できるでしょうか。
やり方がわかる方おられましたら教えてほしいです。
発生している問題・エラーメッセージ
404エラー
該当のソースコード
php
試したこと
add_rewrite_ruleを使用して、category/([^/]+)/の部分をカテゴリースラッグにできればうまくいくのかなと思いましたが
いまいち書き方がわからず、解決できませんでした。
function custom_rewrite()
{
add_rewrite_rule('category/([^/]+)/?', 'index.php?category_name=$matches[1]', 'top');
}
add_action('init', 'custom_rewrite');
補足情報(FW/ツールのバージョンなど)
カテゴリーを削除するプラグインno category baseなども使用してみましたが
日本語スラッグに対応していないため、使用できません。
あなたの回答
tips
プレビュー