阻止插件在‘wp-admin/wp-login’上加载

时间:2016-09-21 作者:James

我正在创建重定向用户的插件,除非他们是从特定IP访问的。

最初,我将此代码放在索引中。php,所以它永远不会加载到wp admin、wp login页面。然而,由于我已经将此代码移动到插件中,它就是。

有人知道我如何在用户处于wp登录/wp管理状态时阻止插件运行吗?我只想检查这些字符串的url,但想知道是否有“更好的实践”方法来实现这一点。

Plugin Code:

/**
 * Plugin Name: LSM - Device Detection
 * Plugin URI: http://no_uri
 * Description: Makes use of WURFL API to detect what device a user is on and redirect if needed
 * Version: 1.0
 * Author: James Husband
 * Author URI: http://no_uri
 * License: GPL2
*/

    // I DO NOT WANT THE FOLLOWING CODE TO RUN IF USER IS ON WP-ADMIN / WP-LOGIN

  /* Device Redirects */
    $device = getDevice();
    if ($_SERVER["REMOTE_ADDR"] != "IPHIDDEN" and $_SERVER["REMOTE_ADDR"] != "IPHIDDEN" and $_SERVER["HTTP_X_FORWARDED_FOR"] != "IPHIDDEN") {
          switch ($device) {
          case TABLET:
              header(\'Location: http://www.urlhidden.com/tablet/\');
              exit;
          break;

          case DESKTOP:
              header(\'Location: http://www.urlhidden.com/\');
              exit;
          break;
      }
    }

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

您可以尝试使用以下示例来停止在上运行的代码admin 侧面或打开wp-login.php

if ( ! is_admin() || \'wp-login.php\' != $GLOBALS[\'pagenow\'] ) {
    // Do stuff here. code inside this statement will 
    // not run on wp-admin & login page.
}

SO网友:Andy Macaulay-Brook

将代码挂接到template_redirect 仅在WP站点前端发射的挂钩。

相关推荐