いくつかのカスタム投稿タイプを使用してWordpressサイトを構築しています。すべての投稿タイプは異なる雑誌です。雑誌の年号用のカスタムメタフィールドもあります。
私はURLを使用したいと思います(archive.phpを使用):
http://my_site/magazine/name/
http://my_site/magazine_name/year/
http://my_site/magazine_name/year/issue/
私はコードでそれを作りました:
function magazine_rewrite_tag() {
add_rewrite_tag('%issue_year%', '([0-9]{4})');
add_rewrite_tag('%issue%', '([0-9])');
}
add_action('init', 'magazine_rewrite_tag', 10, 0);
そして:
function magazine_rewrite_rules() {
add_rewrite_rule('^([a-z]+)/([0-9]{4})/([0-9])?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]&issue=$matches[3]', 'top');
add_rewrite_rule('^([a-z]+)/([0-9]{4})?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]', 'top');
}
add_action('init', 'magazine_rewrite_rules');
もちろん、archive.phpにもカスタムクエリがあります。そしてそれはうまくいきます。
しかし、今、私の単一の記事のURLは機能しません。デフォルトでは、次のとおりです。
http://my_site/magazine/post-title
しかしそれはurlのような雑誌からのすべての記事を表示します(そしてそれはarchive.phpテンプレートを使用しました):
http://my_site/magazine/
単一のカスタム投稿に適切に書き換えルールを追加するにはどうすればよいですか?可能です。次の形式で単一の投稿(選択したカスタム投稿タイプのみ)のURLが必要です。
http://my_site/magazine/year/issue/post-title
10
デフォルトの優先順位です。その場合は、両方ともオフにしておくか、それより大きい数を試してください。(2)結果の書き換えルールを確認しましたか?また、これらのルールは順序どおりに処理されるため、それらの順序を確認してください。ダンプ$GLOBALS['wp_rewrite']
。(3)query_vars
競合する可能性のあるものを追加しましたか?