使用登录保护自定义php文件

时间:2013-03-13 作者:keep dream

我已经开发了一个php应用程序,我希望它仅限于WP用户(像私人区域一样使用WP)。有没有办法使用WPis_user_logged_in 自定义文件中的函数(即。www.mysite.com/app.php)? 我应该将应用程序的文件夹放在哪里?我尝试了,但无法识别该页面。。(.htaccess?)

2 个回复
SO网友:s_ha_dum

如果没有更好的描述,这是不可能确切回答的,但我假设app.php 是一段完全不同的代码。在这种情况下,WordPress无法真正管理对它的访问。您需要将其合并到WordPress中。虽然这不是唯一的方法,但我建议:

创建custom page template 对于应用程序include 它

  • 从wp\\u admin->页面创建一个“页面”,并选择您的模板文件作为“模板”,以控制您可以包括的访问权限if ( is_user_logged_in()) { 直接在模板中显示逻辑。如果要提供某种“必须记录的消息”,请执行此操作

    if ( is_user_logged_in()) {
        // your app code
    } else {
       echo "Please don\'t do that";
    }
    
    或,挂接到template_redirect. 这将允许您重定向到其他页面

    function protect_my_app_wpse_90691() {
      if (is_page_template(\'template-name.php\') && !is_user_logged_in()) {
        wp_safe_redirect(get_bloginfo(\'url\').\'/wp-login.php\'); // or some other page that you prefer
      }
    }
    add_action(\'template_redirect\',\'protect_my_app_wpse_90691\');
    
  • SO网友:montrealist

    您需要将代码带入WordPress领域。最简单的方法是创建一个新模板(一个将驻留在wp-content/themes/your-theme-name 目录)并将该模板分配给页面(检查this page 以获取说明)。环顾四周this series of guides 有关模板以及如何构建模板的更多帮助。最简单的模板如下所示:

    <?php
    /*
      Template Name: My Custom Template
    */
    
    get_header(); ?>
    
      <?php if ( is_user_logged_in() ) { ?>
    
    <!-- user logged in, show something to them -->
    
      <?php } else { ?>
    
    <!-- user not logged in, show error message or forward them to homepage -->
    
      <?php } // end else ?>
    
    <?php get_footer(); ?>
    
    一旦有了带有模板的工作页面,就可以将代码合并到该模板中and 使用is_user_logged_in 函数来执行您需要执行的操作。

    结束

    相关推荐

    Grant access to admin menu?

    我试图授予用户角色“editor”访问用户顶级菜单的权限,然后控制他们访问的子菜单。add\\u操作位于\\u构造方法中。add_action( \'admin_menu\', array( $this, \'action_admin_menu\' ) ); public function action_admin_menu() { $edit_contributor = get_role( \'editor\' ); $edit_cont