Я пытаюсь добавить новую конечную точку для своей пользовательской категории. У меня есть пост, подобный этому www.mysite.com/my-post/, и с этого сайта я бы хотел go страницу www.mysite.com/my-post/my-custom-category/. Я также хотел бы, чтобы этот URL отображал содержимое файла promos. php.
Хитрость в том, что я не могу добавить stati c add_rewrite_endpoint () , потому что категории могут измениться, удалить или добавить. Поэтому я пришел к этой идее:
add_filter('init', 'add_review_rewrite_rules');
function add_review_rewrite_rules() {
$args = array(
'post_type' => 'promo',
'taxonomy' => 'promos'
);
$cats = get_categories($args);
foreach($cats as $cat) {
$cat_slug = $cat->slug;
add_rewrite_endpoint($cat_slug, EP_PERMALINK | EP_PAGES);
}
}
function promos_template_redirect() {
global $wp_query;
$args = array(
'post_type' => 'promo',
'taxonomy' => 'promos'
);
$cats = get_categories($args);
foreach($cats as $cat) {
$cat_slug = $cat->slug;
if ( ! isset( $wp_query->query_vars[$cat_slug] ) || !is_singular() )
return;
// include custom template
include dirname( __FILE__ ) . '/promos.php';
}
exit;
}
add_action( 'template_redirect', 'promos_template_redirect' );
Работает только в первой категории (в алфавитном порядке). Для первого он правильно отображает содержимое промо. php, но для остальных он идет на новый URL, но отображает содержание www.mysite.com/my-post/. Промо-тип поста является индивидуальным, а промо-акция - таксономией для данного типа поста.
Я пробовал обновлять настройки постоянных ссылок после каждого изменения в этом фрагменте кода, он все еще не работает. Этот код неправильный или есть другой способ сделать это? Заранее спасибо!