custom pages give 404 error title in Wordpress
I'm running a site powered by WordPress with extra pages... To integrate these pages with the WordPress theme I use this code:
<?php
$blog_longd='Title'; // page title
define('WP_USE_THEMES', false);
require('wp-blog-header.php');
get_header();
?>
html code
<?php
get_sidebar();
get_footer();
?>
This works fine, however page title shows always 404开发者_开发百科 Error Page (not "Title").
It seems that $wp-query->is_404 is always set to true. I tried overriding this value but it doesn't seem to work. I tried fixing it by putting header status 200 above function get_header()..also it doesn't work.
Any suggestions? Thanks
I know it has been a long time since you asked but I had the problem and here is the solution.
<?php
require('./wp-config.php');
$wp->init();
$wp->parse_request();
$wp->query_posts();
$wp->register_globals();
$wp->send_headers();
get_header();
echo "HELLO WORLD";
get_footer();
?>
Maybe clumsy, but if you implement the wp_title
filter, you can change the title to what you want. You can add this code to the header of each custom page:
add_filter('wp_title', 'replace_title');
function replace_title() {
return 'My new title';
}
If you want it a bit cleaner, use a smarter version of this filter to a plugin, and set only the global variable (here $override_title
) in your page:
add_filter('wp_title', 'replace_title_if_global');
function replace_title_if_global($title) {
global $override_title;
if ($override_title) {
return $override_title;
}
return $title;
}
There is code in the file 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;
}
...
}
that handles 404 status for various of pages.
The stack of functions of this code is:
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()
So you have two ways to handle the situation:
1)
require('wp-blog-header.php');
function status_header( 200 );
2) more correct would be insert your own function here
if ( your_own_function() || ((is_tag() || is_category() || is_tax() || is_author() || is_post_type_archive() ) && $wp_query->get_queried_object()) ) {
that returns true
when your custom page is requested
精彩评论