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

发布于 2024-09-13 20:31:00 字数 458 浏览 5 评论 0原文

我正在运行一个由 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() 上方来修复它。但它也不起作用。

有什么建议吗? 谢谢

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

回忆凄美了谁 2024-09-20 20:31:00

我知道你问这个问题已经很长时间了,但我遇到了问题,这是解决方案。

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

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();
?>
只是在用心讲痛 2024-09-20 20:31:00

也许很笨拙,但如果您实现 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;
}

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;
}
梅倚清风 2024-09-20 20:31:00

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文