【问题标题】:Including custom php page to wordpress without being 404 error将自定义 php 页面包含到 wordpress 中而不会出现 404 错误
【发布时间】:2013-06-11 12:20:10
【问题描述】:

我在添加自定义 php 页面以具有 wp 样式(页眉和页脚)时遇到问题,我成功了,但问题是它显示为 404 错误而不是 200 成功。

标题是这样的:

<?php
include $_SERVER['DOCUMENT_ROOT']."/wp-blog-header.php";
include $_SERVER['DOCUMENT_ROOT']."/wp-content/themes/theme_name/header.php";
?>

我需要有这个页面,比如 is_singleis_page 或者不是带有该错误的 404 页面。

我试过了:

global $wp_query;
$wp_query->is_404 = false; 

和:

global $wp_query;
$wp_query->is_page = true; 

但两者都不起作用,请帮忙!

【问题讨论】:

    标签: php wordpress wordpress-theming


    【解决方案1】:

    您应该使用wp-load.php,而不是wp-blog-header.php。因为 wp-blog-header.php si 的使用仅适用于 wordpress 文件而不是外部文件。

    【讨论】:

      【解决方案2】:

      看看这个链接: https://gist.github.com/gyrus/3332597.
      我认为关键是您必须致电status_header( '200' ); 才能使其正常工作。

      这是另一个相关链接:http://sltaylor.co.uk/blog/intercept-wordpress-404s/

      【讨论】:

        【解决方案3】:

        我也遇到了这个问题,但以下在 Wordpress 4.7 中对我来说效果很好

        <?php
        define('WP_USE_THEMES', false);
        
        if ( !isset($wp_did_header) ) {
        
            $wp_did_header = true;
        
            require( $_SERVER['DOCUMENT_ROOT'].'/wp-load.php' );
        
            wp();
        
            //$wp_query->is_page = true;
            global $wp_query;
            $wp_query->is_404 = false;
            //require_once( ABSPATH . WPINC . '/template-loader.php' );
        }
        
        get_header();
        
        ?>
        
        <?php get_footer();?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-27
          • 2014-08-06
          • 1970-01-01
          • 2015-08-01
          • 1970-01-01
          • 2018-06-13
          • 2017-01-23
          相关资源
          最近更新 更多