включая 404 страницы на странице

Я создал пользовательский запрос var. Поэтому, если запрос var не существует, мне нужно включить страницу 404.

function add_rewrites(){ add_rewrite_rule( '^custom_post_type/([^/]*)/([^/]*)/?', 'index.php?post_type=custom_post_type&name=$matches[1]&sub_pages=$matches[2]', 'top' ); } add_action( 'init', 'add_rewrites' ); function add_custom_query_var( $vars ){ $vars[] = "sub_pages"; return $vars; } add_filter( 'query_vars', 'add_custom_query_var' ); 

Например:

 if ( get_query_var( 'sub_pages' ) == '' ) { //Normal Content } elseif( get_query_var( 'sub_pages' ) == 'example' ){ //Example Content } else { //Include or Load 404 } 

Самый эффективный способ сделать это – иметь белый список страниц и проверять запрошенную страницу перед этим списком до запуска запроса.

 function my_parse_query( $wp_query ) { if( isset( $wp_query->query_vars['sub_pages'] ) ){ $sub_pages = array( 'example', 'another' ); if( ! in_array( $wp_query->query_vars['sub_pages'], $sub_pages ) ){ $wp_query->set_404(); status_header( 404 ); } } } add_action( 'parse_query', 'my_parse_query' ); 

Затем, как только вы достигнете шаблона типа post, вы знаете, что если sub_pages установлен в этой точке, он содержит одну из ваших определенных допустимых страниц.