У меня есть пользовательский тип записи, так как этот код
public static function init() {
add_action( 'init', array( __CLASS__, 'register_post_types' ), 10);
add_filter('template_include', array( __CLASS__, 'exam_template'), 1);
}
public static function register_post_types() {
$labels = array(
'name' => __( 'Exam Online', 'Edinnova' ),
'singular_name' => 'Exam',
'add_new' => 'Add New',
'add_new_item' => 'Add New '.'Exam Online',
'edit_item' => 'Edit '.'Exam Online',
'new_item' => 'New '.'Exam Online',
'all_items' => 'All '.'Exams',
'view_item' => 'View '.'Exam Online',
'search_items' => 'Search '.'Exam',
'not_found' => 'No '.'Exam'.' Found',
'not_found_in_trash' => 'No '.'Exam'.' Found In Trash',
'parent_item_colon' => '',
'menu_name' => 'Exam Online'
);
$args = array(
'labels' => $labels,
'public' => false,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => false,
'query_var' => true,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor','thumbnail','author'),
'capability_type' => 'post',
);
register_post_type( 'exam_online', $args );
add_rewrite_rule('exam_online/([^ /] +)/review', '?index.php&exam=$params[1]&review=yes', 'top');
add_filter('query_vars', function($_vars) {
$_vars[] = 'review';
return $_vars;
});
flush_rewrite_rules();
}
public static function exam_template($template) {
if (get_post_type() == 'exam_online') {
if ($_GET['review'] == 'yes') {
$single_template = dirname(__dir__).'/templates/review-exam_online.php';
}
$single_template = dirname(__dir__).'/templates/single-exam_online.php';
}
return $single_template;
}
, когда я создаю пользовательский пост, затем просматриваю его на первой странице. У меня есть этот URL <domain>/exam_online/<post-url-slug>/
выше URL будет отображатьсяпо одному шаблону
, и я хочу, чтобы URL <domain>/exam_online/<post-url-slug>/review
показывался по шаблону обзора
, но может быть что-то не так, когда я иду на URL <domain>/exam_online/<post-url-slug>/review
всегда возвращать 404.
что не так с моим кодом?Пожалуйста, помогите!
еще один странный случай, когда я использую плагин Debug Bar Rewrite Rules
, кажется, что WordPress не распознает мое правило перезаписи, потому что нет результата при поиске правила регулярных выражений.