Secure Pages Best Practice

时间:2013-05-30 作者:clockwiseq

我正在编写一个插件,该插件具有显示用户信息/数据的前端短代码。如果用户未登录,我需要重定向到前端登录页面/表单。这里的最佳做法是什么?我的插件创建我使用的页面,并向这些页面添加短代码。所以,如果有办法“保护”这些页面,我很想知道。

2 个回复
最合适的回答,由SO网友:montrealist 整理而成

不确定最佳做法,但我有一些自定义的登录敏感页面,如果用户未登录并且试图直接查看页面,则只会显示一条消息:

$logged_in = is_user_logged_in();

if($logged_in) {
?>
<article id="post">
        <?php the_content(); ?>
</article>
<?php
} else {
    _e(\'You are not logged in. Please \', \'abc\');
    echo \'<a href="\' . site_url( \'login\' ) . \'">\'. __(\'log in\',\'abc\') .\'</a> \' . __(\'or\',\'abc\') . \' \';
    echo \'<a href="\' . site_url( \'register\' ) . \'">\'. __(\'register\',\'abc\') .\'</a>.\';
}
注:两个loginregister 页面也是自定义页面。

SO网友:s_ha_dum

你不能redirect users from a shortcode. 短代码运行得太晚——在发送内容之后很久。但是考虑到您的插件正在创建页面,您应该能够做到这一点:

function protect_plugin_page_wpse_101230() {
  if(is_page(\'page-slug\') && !is_user_logged_in()) {
    wp_safe_redirect(\'your-login-page-url\');
  }
}
add_action(\'template_redirect\',\'protect_plugin_page_wpse_101230\');

结束

相关推荐

Child Pages Loop

如果有人能帮忙那就太好了。我找到了一段我使用过的代码,它基本上完成了我希望它完成的任务,列出了父级的子页面,如果有缩略图,则添加缩略图,并添加了自定义摘录。然而,问题是我不能添加个人<?php post_class(); ?> 对于循环中的div,它使用来自父级的类并对子页重复。<?php $child_pages = $wpdb->get_results(\"SELECT * FROM $wpdb->posts WHERE post_parent = \".$pos