我正在使用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()之上来修复它。它也不起作用。
有什么建议吗? 感谢
答案 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