如何在不更改URL地址的情况下手动触发重定向到另一个页面?

时间:2015-09-09 作者:Nadroev

我试图做到这一点,当一个普通用户进入一个他们不应该进入的地方时,他们应该被重定向到404页面,但url必须保持不变,就像他们输入了一个无效的地址一样,因此通过查看地址栏无法知道用户是否偶然发现了一个管理页面。

由于重定向不应该总是发生,因此无法完成。htaccess和当前allow\\u url\\u include被禁用,我读到强烈建议保持这种方式,这样我就不能使用include() 使用exit.

更新1:require()require_once() 看似有效,但仍添加了/ 在URL的末尾。

1 个回复
SO网友:czerspalace

您可以尝试使用template_redirect 勾选以检查您的状况,然后设置wp_query->is_404 变量,如下所示:

function wpse202198_set_404(){
      global $post;
      global $wp_query;
      if( $post->ID == PAGE_ID_OF_PROTECTED_PAGE ){
           $wp_query->is_404 = true;
           return;
      }
}
add_action( \'template_redirect\', \'wpse202198_set_404\' );

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请