我正在创建重定向用户的插件,除非他们是从特定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;
}
}
最合适的回答,由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.
}