Hay una manera de obtener la ruta de acceso para que WordPress está instalado?

Yo estaba usando el siguiente:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);

Está bien www.example.com -> /usr/local/pem/vhosts/165312/espacio/httpdocs

No es la multa por www.example.com/blog ya que la necesito para codificar el nombre de la carpeta (blog).

Más tarde me encontré con un camino por el uso de este:

$iroot = getcwd();
$folder = explode("/", $iroot);
$dir = $folder[8]; //I know is 8
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require "$root/$dir/wp-blog-header.php";

Pero todavía es un montón de complicadas. Hay una forma sencilla de llegar a donde WordPress está instalado (el camino) sin codificar?

Nota: 1 WordPress funciones no funcionarán ya que esto es de alguna manera fuera de WordPress. Como se señaló en el último ejemplo, el punto de determinar la ruta de instalación de WordPress es require "wp-blog-header.php"; en varias instalaciones de WordPress donde cada instalación utiliza una carpeta diferente (example.com/blog-one y example.com/blog-two), no WordPress MU o de sitios múltiples.

Nota: 2 Si en lugar de require "$root/$dir/wp-blog-header.php"; yo uso require "wp-blog-header.php"; funcionará mientras el archivo está en la misma carpeta, pero en mi caso el archivo se encontrará a veces en una carpeta diferente.

¿Qué acerca de la consulta de base de datos? WordPress guarda esta variable también en su wp_config?
Publicar que como una respuesta con un ejemplo ? Es una buena idea.

OriginalEl autor user983248 | 2012-06-08

8 Comentarios

  1. 6

    Utilizar el ABSPATH constante:

    <?php echo ABSPATH ?>

    Este debe imprimir tu WordPress camino.

    No va a trabajar desde fuera de wordpress !!

    OriginalEl autor Estevão Lucas

  2. 3

    Aquí es lo que yo estoy haciendo:

    Instalación:

    $docRoot = $_SERVER['DOCUMENT_ROOT'];
    $scriptName = $_SERVER['SCRIPT_NAME'];
    $queryArray = explode("/", $scriptName);
    $queryLength = count($queryArray);

    Uso:

    require_once($docRoot . ($queryLength > 2 ? "/".$queryArray[$queryLength - 2] : "" ) . '/wp-blog-header.php');

    Esto funciona muy bien para mí en el momento de instanciar un WordPress medio ambiente, independientemente de que la secuencia de comandos. Definitivamente es necesario desinfectar antes de usar cualquier $_SERVER variables (y necesito triplecheck esta fuera de mi localhost medio ambiente), pero no creo que se requiere severas modificaciones a ser una práctica solución universal.

    OriginalEl autor akamaozu

  3. 2

    Raíz ejemplo:

    • /usr/local/pem/vhosts/165312/espacio/httpdocs/blog-uno
    • /usr/local/pem/vhosts/165312/espacio/httpdocs/blog-dos
    • /usr/local/pem/vhosts/165312/espacio/httpdocs/algunos-blog

    El ejemplo siguiente se trabajo en cualquier de los blogs («blog», «blog-dos» y «blog») y la secuencia de comandos o el archivo puede ser instalado en cualquier subcarpeta del blog.

    $current_path = getcwd(); //Get the current path to where the file is located
    $folder = explode("/", $current_path); //Divide the path in parts (aka folders)
    $blog = $folder[8]; //The blog's folder is the number 8 on the path
    
    //$root = path without the blog installation folder.
    $root = realpath($_SERVER["DOCUMENT_ROOT"]);
    
    //Now I can require any WordPress file
    require "$root/$dir/wp-blog-header.php";
    
    //For the current installation
    //For example, wp-blog-header.php to get the blog name or
    //wp-config.php to access the database.

    Esto hace que la secuencia de comandos independiente. El script funciona en cualquier carpeta en cualquier instalación de WordPress instalación mientras la carpeta es el número 8. Si la instalación es en una sub carpeta, el número 8 se tiene que ser mayor. También tener en cuenta que la ruta de acceso actual, puede tener más o menos carpetas, lo que significa que el script tiene que adaptarse en consecuencia.

    Nota: Esto funciona, por «codificar» la carpeta en la posición en la ruta de acceso y, a lo largo de todo el montaje en la misma posición, el script funciona. La otra manera es difícil de código.

    OriginalEl autor user983248

  4. 2

    Si todo lo que estás tratando es el actual directorio donde el archivo se llama se encuentra, a continuación, me gustaría utilizar:

    realpath(dirname(__FILE__))

    Mucho de esto depende de donde se encuentra el archivo. Si está en el mismo directorio que la instalación de WordPress, entonces sería algo así como:

    <?php
        $root = realpath(dirname(__FILE__));
        require "$root/wp-blog-header.php";
    ?>
    lo sentimos, pero no funcionó. Necesito reemplazar a ‘ARCHIVO‘ con algo más ? porque, como usted ha publicado en su respuesta no funcionan.
    Lo siento por eso. Se olvidó de agregar el nombre de la carpeta a eliminar el nombre de archivo en la ruta. Acaba de actualizar. Y usted debe escribir como es.
    lo siento, pero esto sólo funciona si el script se encuentra en la misma carpeta. Yo buscando una solución un poco más flexible, que puede trabajar en cualquier carpeta como se indica en la Nota 2 en la pregunta.
    Por desgracia, lo que tu describes es el que va a requerir la pista donde se encuentran los archivos de alguna manera y hacer referencia a la ruta de esa manera. En su lugar, yo recomiendo tener un script para esta en cada uno de los directorios de WordPress que, a continuación, llamar a la generalizada ubicación para el resto del código. Un cargador de script básicamente. Cualquier otra cosa va a ser difícil de implementar y doloroso para gestionar a largo plazo.

    OriginalEl autor Drahkar

  5. 1

    Si se puede llegar a la base de datos, usted necesita para hacer

    update_option('wp_dir',dirname(__FILE__));

    archivo wp-blog-header.php.

    A continuación, conectarse a la base de datos desde cualquier aplicación y recuperar el camino con la siguiente consulta:

    select option_value from wp_options where option_name ='wp_dir';

    Por supuesto, usted necesita saber el nombre de base de datos y WordPress prefijo de la tabla.

    PS: Esto puede o no puede ser la solución, pero es una de las formas.

    OriginalEl autor FatalError

  6. 0

    ¿Por qué no simplemente hacer lo siguiente en la wp-config.php:

    $WP_PATH = implode("/", (explode("/", $_SERVER["PHP_SELF"], -1)));

    por ejemplo,

    $WP_PATH = implode("/", (explode("/", "/one/two/three/index.php", -1)));

    devolverá «/uno/dos/tres» y

    $WP_PATH = implode("/", (explode("/", "/index.php", -1)));

    devolverá «»

    OriginalEl autor user787348

  7. 0
    $WP_PATH = implode("/", (explode("/", $_SERVER["PHP_SELF"], -4)));

    Le dará la exacta raíz de WordPress.

    Por ejemplo, su dirección de origen es http://www.myroot.com y de su sitio de WordPress se encuentra en la carpeta de WordPress en el directorio public_html, entonces wwww.myroot.com/wordpress/será el resultado en $WP_PATH. En tal caso, su actual nombre del archivo debe ser en tu plugin directorio raíz. Como some_plugin es mi nombre del plugin. Así que la ruta de acceso completa será:

    localhot/wordpress/wp_content/plugins/some_plugin/

    Y localhot/wordpress/wp_content/plugins/some_plugin/myfile.php es mi nombre de archivo donde escribí este script, me dará /wordpress. Esto funcionó para mí como yo quería que mi wordpress nombre de directorio. Para buscar contenido como este:

    $WP_PATH = implode("/", (explode("/", $_SERVER["PHP_SELF"], -4)));
    require_once( $_SERVER['DOCUMENT_ROOT'].$WP_PATH '/wp-load.php');

    OriginalEl autor Sahib Khan

Dejar respuesta

Please enter your comment!
Please enter your name here