要求:我有一个下面的脚本来锁定Wordpress页面。当我应用于特定模板时,它运行良好。因此,我没有在17个不同的模板上添加脚本,而是使用!is_front_page()
语句将其放在header.php文件中,因此脚本应该适用于除主页之外的所有页面。
问题:只有当我将脚本放在第1行的页面顶部而没有任何空格时,脚本才能工作,否则会引发错误(警告:无法修改标头信息-标头)。
我的错误原因:正如我前面提到的,我将以下脚本放在了header.php文件中。因此,由于模板文件中的这一行<?php get_header(); ?>
(以下代码必须在<php get_header(); ?>
之前),出现了错误。所以我的问题是,我们可以用下面的脚本进行任何转换吗?或者我需要在第一行手动将脚本放在所有模板上?
<?php
if(!is_user_logged_in())
$redirect = home_url() . '/wp-login.php?redirect_to=' . urlencode( $_SERVER['REQUEST_URI'] );
wp_redirect( $redirect );
?>
你可以在你的functions.php中尝试这一点-将你的代码挂接到WordPress挂钩中,这样它就会在调用头之前启动等等……这意味着它也会在每个页面上被调用。
function password_protected() {
if ( !is_user_logged_in() ) {
$redirect = home_url() . '/wp-login.php?redirect_to=' . urlencode( $_SERVER['REQUEST_URI'] );
wp_redirect( $redirect );
}
}
add_action('init', 'password_protected');
感谢@rnevius 更新