2

我正在运行一个由 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->is_404 总是设置为 true。我尝试覆盖这个值,但它似乎不起作用。我尝试通过将标题状态 200 放在函数 get_header() 上方来修复它。它也不起作用。

有什么建议么?谢谢

4

3 回答 3

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();
?>
于 2012-06-20T19:49:12.143 回答
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;
}
于 2010-08-10T21:17:17.593 回答
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当您的自定义页面被请求时返回

于 2013-06-11T11:27:48.937 回答