2009-12-25 15 views
13

¿Puede alguien decirme si alguno de estos dos métodos tiene una ventaja sobre el otro y por qué?ABSPATH o __FILE__?

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

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

Ambos pueden ser utilizados para obtener y ruta absoluta al directorio de imágenes de "mytheme" independientemente de la estructura de si wordpress está instalado en el directorio raíz o en un subdirectorio de la raíz. En ambos casos, se llaman desde el archivo functions.php que se encuentra debajo de la carpeta "mytheme".

+3

Hay una respuesta por @ Adam, que supera a la mina en la calidad, tenga en cuenta el cambio de la respuesta aceptada –

Respuesta

13

Preferiría personalmente dirname() ya que siempre se garantiza que me dará el resultado correcto, mientras que el método ABSPATH se basa en una ruta de tema fija y un nombre de tema que ambos pueden cambiar. Por favor, puede usar __DIR__ en lugar de dirname(__FILE__).

+2

Tenga en cuenta que '' __FILE__' y __DIR__' veces da resultados no deseados si se utiliza enlaces simbólicos, ya que al diseñar el '__FILE__' * resuelve * los enlaces simbólicos. Desafortunadamente no hay forma de eludir esto y varias maneras de arreglar esto en el PHP mismo se propone en [el rastreador de errores de PHP] (https://bugs.php.net/search.php?cmd=display&search_for=__FILE__+symbolic). – Ciantic

2

Para mis propios proyectos, yo elegiría dirname(__FILE__), también hay una nueva constante en PHP:

__DIR__ === dirname(__FILE__) 
+0

La const '__FILE__' existe desde PHP 4, mientras que la const' __DIR__' es solo desde PHP 5.3. Vale la pena señalar, si espera trabajar con algo más de 5.3 – EvanK

9
Cuestiones relacionadas