В файле class-wp.php есть код:
function handle_404() {
...
// Don't 404 for these queries if they matched an object.
if ( ( is_tag() || is_category() || is_tax() || is_author() || is_post_type_archive() ) && $wp_query->get_queried_object() ) {
status_header( 200 );
return;
}
...
}
, который обрабатывает статус 404 для различных страниц.
Стек функций этого кода:
1) wp-blog-header.php:14, require()
2) function.php:775, wp()
3) class-wp.php:525, WP->main()
4) class-wp.php:491, handle_404()
Итак, у вас есть два способа справиться с ситуацией:
1)
require('wp-blog-header.php');
function status_header( 200 );
2) правильнее было бы вставить сюда свою функцию
if ( your_own_function() || ((is_tag() || is_category() || is_tax() || is_author() || is_post_type_archive() ) && $wp_query->get_queried_object()) ) {
, который возвращает true
при запросе пользовательской страницы