Löscht WordPress $GLOBALS?

Lesezeit: 2 Minuten

Was ich tun möchte, ist, eines meiner PHP-Skripte in ein WordPress-Design einzufügen. Das Problem ist, dass ich nach dem Einbinden der Skriptdatei nicht mehr auf die in der Skriptdatei deklarierten Variablen innerhalb der Funktionen in der Designdatei zugreifen kann.

Ich habe eine neue Datei im Themenordner erstellt und denselben Code wie in header.php hinzugefügt, und wenn ich diese Datei öffne, funktioniert es einwandfrei. Soweit ich das beurteilen kann, hat es etwas mit Word Press zu tun.

/other/path/wordpress/wp-content/themes/theme-name/header.php // this is broken
/other/path/wordpress/wp-content/themes/theme-name/test.php   // this works

/var/www/vhosts/domain/wordpress/ ->(symlink)-> /other/path/wordpress/
                                                /other/path/wordpress/wp-content/themes/theme-name/header.php
/var/www/vhosts/domain/include_file.php

Inhalt von: /var/www/vhosts/domain/include_file.php

$global_var="global";
print_r($GLOBALS);  // if I open this file directly this prints globals WITH $global_var;
                    // if this file is included in header this prints all the WP stuff WITHOUT $global_var;

Inhalt von: /other/path/wordpress/wp-content/themes/theme-name/header.php require ‘/path/to/include_file.php’;

print $global_var; // this prints 'global' as expected
function test()
{
    global $global_var;
    print $global_var; // this is NULL
}
test();
print_r($GLOBALS); // this prints all the WP stuff WITHOUT $global_var in it

  • globals sind schlechte Praxis, verwenden Sie es nicht

    – Leise

    27. April 2010 um 11:44 Uhr

  • Ich muss es für eine Funktion verwenden, die als Autoloader fungiert und ihre Parameter automatisch erhält. global war der einfachste Weg, Daten einzugeben.

    – Brayn

    27. April 2010 um 12:06 Uhr

Ich fördere nicht die Verwendung von $GLOBALSaber trotzdem … definieren Sie Ihre Variable mit:

$GLOBALS['varname'] = 'value';

Das sollte funktionieren. Ich vermute, Sie befinden sich nicht wirklich in einem globalen Bereich, wie Sie denken. Diese Datei wird wahrscheinlich von einer Funktion eingebunden, in diesem Fall befinden Sie sich im Funktionsbereich.

  • Ich habe es gerade herausgefunden und bin zurückgekehrt, um die Antwort zu posten. Aber du hast Recht, ich bin nicht im richtigen Bereich. Danke!

    – Brayn

    27. April 2010 um 14:59 Uhr

995490cookie-checkLöscht WordPress $GLOBALS?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy