If-statement in wp-config.php, ist es möglich?

Ich habe schon hier und dort gesucht, konnte aber nichts definitives finden.

Ich habe WordPress Multisite und ich habe ein Plugin (aktiviert auf jeder Seite), das erfordert einen Slug-Parameter in wp-config.php zu setzen.

Leider benötigt jeder Standort des Netzwerks einen anderen Slug-Parameter.

Ich würde gerne wissen, ob es möglich ist, eine if-statement in wp-config.php zu setzen, um diese Parameter auf Basis der Variablen $_SERVER['HTTP_HOST'] definieren.

Code ist der folgende:

 if ( stristr( $_SERVER['HTTP_HOST'], 'site.com' ) ) { define('ABC_PRODUCT_SLUG', 'slug-for-en'); } elseif ( stristr( $_SERVER['HTTP_HOST'], 'de.site.com' ) ) { define('ABC_PRODUCT_SLUG', 'slug-for-de'); } 

Ist das möglich und zuverlässig ? Gibt es irgendwelche möglichen Nachteile ?

Vielen Dank

Solutions Collecting From Web of "If-statement in wp-config.php, ist es möglich?"

Im Anschluss an den Kommentar Thread …

Hier ist eine Methode, die ich für eine lange Zeit verwendet habe, um das “nicht ideale” Szenario verschiedener Konfigurationen zwischen Umgebungen zu behandeln. Das Folgende ist eine stark reduzierte Darstellung von wp-config.php aber es zeigt die Idee …

 < ?php /** * The base configurations of the WordPress. * * This file has the following configurations: MySQL settings, Table Prefix, * Secret Keys, WordPress Language, and ABSPATH. You can find more information * by visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing * wp-config.php} Codex page. You can get the MySQL settings from your web host. * * This file is used by the wp-config.php creation script during the * installation. You don't have to use the web site, you can just copy this file * to "wp-config.php" and fill in the values. * * @package WordPress */ /** Environment: LOCAL || STAGING || LIVE **/ define('BCUK_SITE_ENV', 'LOCAL'); /** System/CMS defaults **/ eg settings that are common across all environments if (BCUK_SITE_ENV == "LOCAL"): eg different db settings, memory limits, paths, etc. elseif (BCUK_SITE_ENV == "STAGING"): eg different db settings, memory limits, paths, etc. else: eg different db settings, memory limits, paths, etc. endif; // Remaining wp-config bits go here eg salts, lang settings, etc 

Wie Sie sehen können, nehme ich lieber an, dass 'sonst' die Live-Einstellungen bedeutet, nur aus Sicherheitsgründen.

Ich habe auch Versionen dieser Methode verwendet, bei denen die Definition der Umgebung tatsächlich in einer separaten Datei enthalten ist, die enthalten ist, zB Ersetzen von define('BCUK_SITE_ENV', 'LOCAL'); mit einer Include-statement, die eine Datei eingibt (etwa 'environment_config.inc.php'), in der nur eine Zeile zum Ändern der Umgebungskonstanten verwendet wird. Auf diese Weise können Sie Ihre wp-config.php immer zwischen den verschiedenen Umgebungen hin und her schieben, ohne die aktuelle Umgebung zu beeinflussen.

In all dem oben, könnten Sie es leicht anpassen, um entweder Ihre Logik direkt auf den Wert von $_SERVER['HTTP_HOST'] oder konfigurieren Sie Ihre Umgebungsvariable / Konstante auf den Wert von $_SERVER['HTTP_HOST'] .

Ich hoffe, dass alles einen Sinn ergibt. Es ist definitiv nicht der einzige Weg, aber hoffentlich zeigt es, dass es definitiv eine robuste und praktikable Methode ist. Ob es für Ihr spezielles Plugin-Entwicklungsszenario funktioniert, wissen Sie nur.