2009-12-25 14 views
13

Kann mir jemand sagen, ob eine dieser beiden Methoden einen Vorteil gegenüber dem anderen hat und warum?ABSPATH oder __FILE__?

$mydir = ABSPATH.'/wp-content/themes/mytheme/images';

$mydir = dirname(__FILE__).'/images';

können Sie beide verwendet werden, um zu erhalten und absoluten Pfad zu dem Verzeichnis images von „mytheme“ unabhängig von der Struktur, ob Wordpress auf dem Root-Verzeichnis installiert ist, oder in einem Unterverzeichnis aus dem Wurzel. In beiden Fällen werden sie aus der Datei functions.php aufgerufen, die sich unter dem Ordner "mytheme" befindet.

+3

Es gibt eine Antwort von @ Adam, die Mine in der Qualität übertrumpft, betrachten den akzeptierte Antwort –

Antwort

13

Ich persönlich würde dirname() bevorzugen, da es immer garantiert ist, mir das richtige Ergebnis zu geben, während die ABSPATH-Methode auf einem festen Thema Pfad und Thema Namen, die beide ändern können.

Übrigens können Sie __DIR__ anstelle von dirname(__FILE__) verwenden.

+2

Hinweis zu ändern, dass '__FILE__' und' __DIR__' manchmal unerwünschte Ergebnisse gibt, wenn Sie symbolische Links verwenden, da durch das 'Design __FILE__' * löst * die symbolischen Links auf. Leider gibt es keine Möglichkeit, dies zu umgehen und verschiedene Möglichkeiten, dies in PHP selbst zu beheben, werden in [Bugs Tracker] von PHP vorgeschlagen (https://bugs.php.net/search.php?cmd=display&search_for=__FILE__+symbolic). – Ciantic

2

Für meine eigenen Projekte, die ich dirname(__FILE__) wählen würde, auch gibt es eine neue Konstante in PHP:

__DIR__ === dirname(__FILE__) 
+0

Das '__FILE__' const existiert seit PHP 4, während das' __DIR__' const erst seit PHP 5.3 existiert. Bemerkenswert, wenn Sie mit etwas älter als 5.3 arbeiten – EvanK

9
Verwandte Themen