Verhindern, dass Plugin auf ‘wp-admin / wp-login’ geladen wird

Ich erstelle ein Plugin, das Benutzer umleitet, OHNE dass sie eine bestimmte IP besuchen.

Ursprünglich hatte ich diesen Code in index.php gesetzt, damit er niemals auf wp-admin, wp-login Seiten geladen würde. Aber seit ich diesen Code in ein Plugin verschoben habe, ist es.

Weiß jemand, wie ich das Plugin stoppen kann, während der Benutzer auf wp-login / wp-admin ist? Ich wollte einfach die URL auf diese Zeichenfolgen überprüfen, aber ich fragte mich, ob es eine “bessere Praxis” -Methode gab, dies zu erreichen.

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; } } 

Solutions Collecting From Web of "Verhindern, dass Plugin auf ‘wp-admin / wp-login’ geladen wird"

Sie können versuchen, mit dem folgenden Beispiel den Code auf der admin Seite oder auf der wp-login.php Seite zu 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. } 

Haken Sie Ihren Code in den template_redirect Hook, der nur am Front-End einer WP-Site ausgetriggers wird.