Seite 1 von 1
Wordpress löscht meine PHP Variablen!
Verfasst: 30.11.2011, 10:51
von Deathcore
Hallo Zusammen,
ich habe selbst ein Wordpress Template gebaut.
Wenn ich ganz am Anfang des Dokuments eine PHP Variable festlege ist diese am Ende (nach dem Wordpress Code) nichtmehr vorhanden???
Kennt wer dieses Phänomen???
Wenn ich den Wordpress Code entferen läuft alles perfekt....

Verfasst:
von
Content Erstellung von
ABAKUS Internet Marketing
Ihre Vorteile:
- einzigartige Texte
- suchmaschinenoptimierte Inhalte
- eine sinnvolle Content-Strategie
- Beratung und Umsetzung
Jetzt anfragen:
0511 / 300325-0
Verfasst: 30.11.2011, 10:53
von Can
Mehr Infos.
Denke mal, es liegt daran, dass das WP Template das ganze idR in mehrere Dateien splittet. ggf. als Global ?
(Bin kein php profi, entspricht nur meiner Logik

)
Verfasst: 30.11.2011, 10:56
von Deathcore
Ich habe einfach gesagt
eine Header, Content und Footer Datei
die Variable wird ganz am Anfang festgelegt,
dann folgen die ganzen Wordpress Scripte blablabla
und gaanz am Ende will ich die Variable wieder abrufen und sie gibts nichtmehr bzw. ist leer
ist auch nicht so, dass Sie überschrieben wurde oder so, nööö einfach weg.
Finde das verdammt uncool von Mr. Wordpress
Hab schon rumgegoogelt und finde aber auch nichts
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 30.11.2011, 12:10
von fettmme
Wordpress "löscht" nicht automatisch globale Variablen. Vermutlich werden die überschrieben, weil der Name der Variable schon verwendet wird.
Du solltest eigene Variable immer mit einem Prefix versehen, damit so etwas nicht passieren kann.
Beispiel :
Noch besser ist, Du kommst ohne globale Variablen aus.
Beispiel:
Code: Alles auswählen
class deathcore{
public static $footer;
}
deathcore::$footer = 'xy';
...
echo deathcore::$footer;
Verfasst: 30.11.2011, 12:16
von Deathcore
das war auch mein erster Gedanke,
die Variablennamen kommen im ganzen Wordpress definitiv nicht vor. Hab schon die verrücktesten Variablennamen ausprobiert, und davon schon mind. 10 verschiedene
Verfasst: 30.11.2011, 12:36
von Anna Bolika
Also ich habe - mal ganz unabhängig von Wordpress - ein neues Verhalten innerhalb meiner Skripte beobachtet.
Variablen aus einer Include-Datei stehen in einer anderen Include-Datei nicht mehr zur Verfügung (es sei denn man macht sie global). Ich könnte schwören, dass das "früher"nicht so war.
Allerdings arbeite ich mit einigen selbstgeschriebenen Systemen, die sehr stark auf Objekte setzen, die ich per singleton aufrufe. So laufen meine alten Seiten zwar noch, aber ich habe das Gefühl, dass sich etwas geändert hat.
Aussagen zu PHP-Versionen kann ich nicht machen.
Also versuch mal, deine Variablen global zu machen. Vielleicht hilft das.
Verfasst: 30.11.2011, 15:57
von fettmme
Variablen sind grundsätzlich erst mal global, außer man definiert sie in einer Funktion, oder einer Klasse, etc. Siehe auch
https://php.net/manual/de/language.variables.scope.php
Vielleicht wird Dein File in einer Funktion inkludiert. Dann sind die Variablen natürlich nicht global. Abhilfe würde in dem Fall z.B. die statische Variable einer Klasse lösen (s.u.). Ist "sauberer" als eine globale Variable.
Ohne Glaskugel ist so ein Problem natürlich schwer einzugrenzen. Aber aus einer Erfahrung kann ich sagen: Meist liegt es an der Person vor dem Monitor.
Ich würde an Deiner Stelle den Code mal mit mehreren Debug Ausgaben versehen:
Damit kannst Du das Problem eingrenzen. Einfach die Zeile im Code immer weiter runterschieben. Sobald die Variable null oder ein nicht von Dir belegter Wert ist, weißt Du wo Du weiter suchen musst.
Alternativ kann man das natürlich auch mit einem Debugger machen. Ist aber für den Anfang komplizierter.
Verfasst: 01.12.2011, 15:35
von Deathcore
dankeschön, du hast mir schon sehr sehr weiterholfen.
Das mit der Person vor dem Monitor stimmt natürlich nicht
Könnte vielleicht mal wer nur testweise in seinen Blog (falls vorhanden)
ganz am Anfang des Dokuments (vorm doctype) einer Variable einen Wert zuweisen und im Footer (oder sogar danach) abrufen?
ich glaube dass der Fehler irgendwo in der wp_head(); drinnen steckt.....
isch gucke
------
EDIT:
also bin einen Schritt weiter (oder zurück....)
wenn ich die Variable vor <?php get_footer(); ?> abfrage funktioniert sie
aber in der get_footer nicht
unterhalb der get_footer funktioniert Sie auch wieder...
Verfasst: 02.12.2011, 08:25
von Deathcore
soooo problem Gelöst,
wieder einiges gelernt hier die Lösung des Problems
https://wordpress.org/support/topic/wor ... ore-footer
Verfasst: 02.12.2011, 10:08
von fettmme
Dann ist es ja so wie oben beschrieben. Der Scope ist unterschiedlich, weil die Footer Datei in einer Funktion inkludiert wird.
Wenn Du solche Dinge in einer Klasse - wie oben gezeigt - speicherst, hast Du solche Probleme nicht.
Verfasst: 02.12.2011, 12:24
von Deathcore
jaaa hab ja schon verstanden ... MUTTER
Vielen dank für den Tipp! Würde sonst wahrscheinlich immernoch suchen
Verfasst: 02.12.2011, 15:32
von fettmme
Mutter?
Ich schreib das ja nur, weil ich vor 10 Jahren die gleichen Fehler programmiert habe und sie teilweise heute immer noch betreuen muss.
Ich wünschte, damals hätte es schon sowas gegeben:
https://www.amazon.de/Entwurfsmuster-vo ... 897214210/
https://www.amazon.de/PHP-MySQL-von-Kop ... 897219034/
Das hätte mir viel erspart. Ich habe ne ganze Weile gebraucht, bis ich solche Themen wie OOP und Endwurfsmuster gefunden und kapiert habe.
