実際には、カスタム投稿タイプのURLの構造を変更する必要があります(分類URLをカスタマイズしますが、混乱を避けるためにこの質問の投稿のみをターゲットにします)。
私のカスタム投稿タイプは、スラッグproperties
を持つプロパティで、スラッグproperty_category
を持つ分類「プロパティカテゴリ」を持っています。
現在、カスタム投稿タイプの構造は次のとおりです。https://domain.com/properties/postname
カスタム投稿タイプの場合、カテゴリとサブカテゴリをURLに含め、https://domain.com/property_category/property_sub_category/**/postname
のようにproperties
slugを削除します。
プラグイン(カスタム投稿タイプパーマリンク)を使用することで、このURLを取得することができますhttps://domain.com/properties/property_category/property_sub_category/**/postname
お分かりのように、私の上記のURLにはproperties
が含まれているので、削除する必要があります。そのため、ここまですべてがうまく機能しています。
その後、urlからプロパティを削除し、投稿とページとともに自分のプロパティのカスタム投稿タイプをチェックする機能を追加しました。そのため、私のurlはhttps://domain.com/property_category/sub_category/**/postname
になりますが、壊れて404が返されます。
このURLは機能していますが、私はこれを必要としませんでしたhttps://domain.com/property_postname
私はWordpressのReWrite API
がこの問題を解決することができるけれどもそれに対する実際の解決策を理解することができないと信じます。
この点で任意の助けは大歓迎です。
私が直面している問題はすでに詳細に説明されています。 wordpress rewrite apiでこの問題を解決できると思いますので、その解決策を見つけました。私の投稿には2つの主なカテゴリーしかありませんので、それらを私のプロパティにマッピングします。なぜなら、私はurlからcustom_post_type nameを削除しているので、urlを識別しマッピングするための何かがあるはずです。
/**
* Rewriting url
*/
function mak_rewrite_add_rewrites()
{
// Mapping Property
add_rewrite_rule(
'^category_one_name(/[\S]*)+(/[\S]*)$',
'index.php?property=$matches[2]',
'top'
);
add_rewrite_rule(
'^category_two_name(/[\S]*)+(/[\S]*)$',
'index.php?property=$matches[2]',
'top'
);
}
add_action('init', 'mak_rewrite_add_rewrites');
$matches[2]
は、正規表現の2番目の括弧から値を取得することを表します。