自定义页面在Wordpress中给出404错误标题

时间:2010-08-10 11:41:48

标签: wordpress http-status-code-404 page-title

我正在使用WordPress运行一个带有额外页面的网站... 要将这些页面与WordPress主题集成,我使用以下代码:

<?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();
?>

这很好用,但页面标题总是显示404错误页面(不是“标题”)。

似乎$ wp-query-&gt; is_404始终设置为true。我试过覆盖这个值,但它似乎不起作用。我尝试通过将标题状态200置于函数get_header()之上来修复它。它也不起作用。

有什么建议吗? 感谢

3 个答案:

答案 0 :(得分:3)

我知道你提问已经很久了,但我遇到了问题,这就是解决方案。

<?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();
?>

答案 1 :(得分:1)

可能很笨拙,但如果您实施wp_title过滤器,则可以将标题更改为您想要的内容。您可以将此代码添加到每个自定义页面的标题中:

add_filter('wp_title', 'replace_title');
function replace_title() {
   return 'My new title';
}

如果你想让它更清洁,可以在插件中使用更智能的过滤器版本,并在页面中仅设置全局变量(此处为$override_title):

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;
}

答案 2 :(得分:0)

文件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