允许潜在客户开放访问新的主题定制器是可能的(或可取的)吗?

时间:2012-07-18 作者:byronyasgur

我一直在用new theme customizer 我真的在想,如果允许潜在的主题买家/客户等与定制者一起玩演示主题(无需登录),那该有多棒。自定义程序位于:

..wp-admin/customize.php.

因此,需要以某种方式允许对该URL的开放访问but 后端没有其他内容。我想这可能是一个安全问题,但我想我会在这里进行讨论,以防安全地执行此操作,因为我相信其他人可能也有同样的想法。

所以问题是:是否有任何安全的方法可以允许对管理员的单个页面进行开放访问?

1 个回复
最合适的回答,由SO网友:Jasper Denkers 整理而成

只是一个想法:

创建一个名为“Guest”的用户并查找用户ID将潜在客户端重定向到管理页面时,重定向到以Guest用户身份登录客户端的脚本(代码#1)

  • 添加WordPress操作,以禁止用户以“Guest”身份登录,而不是自定义。php(代码#2)
    1. 代码#1

      $creds = array(
          \'user_login\' => \'guest_user\',
          \'user_password\' => \'guest_user_plain_password\'
      );
      
      $user = wp_signon( $creds, false );
      
      if ( is_wp_error( $user ) )
          echo $user->get_error_message();
      else
          wp_redirect( \'your_absolute_admin_url\' ); exit;
      
      代码#2
      add_action( \'init\', \'check_guest_user\' );
      
      function check_guest_user() {
          // Only when in backend and the guest user is logged in
          if ( is_admin() && user_id = get_current_user_id() ) {
              // Block other pages then custom.php
              global $pagenow;
      
              if ( \'customize\' != $pagenow )
                  exit();
          }
      }
      
      // replace user_id with the user ID of \'Guest\'
      
      此脚本的唯一问题是当多个用户尝试自定义程序时。保存每个用户的自定义设置会让事情变得更加困难。

      它回答了您的问题,因为它是一种解决方案,允许用户访问特定页面,而无需注册帐户。

      http://codex.wordpress.org/Function_Reference/wp_signon

    结束

    相关推荐