¿Cómo obtener el directorio de inclusión de wp?

2 minutos de lectura

Necesito hacer require_once para el desarrollo de mi complemento wp. Me parece que necesito usar la ruta absoluta.

mi solución actual es

$delimiter = strpos(dirname(__FILE__), "https://stackoverflow.com/")!==false?"https://stackoverflow.com/":"\\"; //win or unix?
$path = explode($delimiter,  dirname(__FILE__));

require_once join(array_slice($path,0,count($path)-3),$delimiter) . "/wp-admin/includes/plugin.php"; 

Me pregunto si hay una mejor manera de manejar esto, una especie de enfoque general.

¿Qué sucede si la estructura del directorio del complemento wp cambia? entonces esta parte count($path)-3 ya no sera valido….

  • ¿Dónde se encuentra este directorio wp-include en el tablero? Estoy tratando de encontrar el archivo header.php y leo que estaría en este directorio.

    – Namratha

    12 de febrero de 2013 a las 12:48

WordPress establece la ruta al directorio de inclusión en el inicio.

require_once ABSPATH . WPINC . '/your-file.php';

  • +1 por saber sobre ABSPATH. Desafortunadamente, no lo usa de manera consistente y generalmente usa una ruta relativa o absoluta al vincular. Es un gran dolor si desea cambiar el nombre del directorio por seguridad.

    – SuperMykEl

    12 de agosto de 2012 a las 23:18


avatar de usuario
petah

Probar:

require_once realpath(__DIR__.'/../../..').'/wp-admin/includes/plugin.php';

O reemplazar __DIR__ con dirname(__FILE__) si está en

O podrías probar:

require_once ABSPATH . WPINC . '/plugin.php';

  • /../../.. o count($ruta)-3 es más o menos lo mismo. Pensé que podría haber una mejor solución usando algunas de las funciones de wordpress que devolverían la ruta….

    – Radek

    1 de junio de 2011 a las 2:08

  • No sé cómo funciona WP, pero el estándar de facto es establecer una constante cuando carga la aplicación por primera vez en la ruta raíz de la aplicación y luego la usa en cualquier otro lugar.

    – Peta

    1 de junio de 2011 a las 2:12

  • mi punto es que /wp-admin/includes/plugin.php es la ruta de inclusión de wordpress. Lo que sugiere es cómo manejar el desarrollo de complementos. mi pregunta es como ser independent sobre cambios en la estructura de archivos de wordpress. Probablemente no pueda ser 🙂

    – Radek

    1 de junio de 2011 a las 2:30

Es posible aprovechar WP_CONTENT_DIR y hacer una buena constante

define(WP_INCLUDE_DIR, preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));

o una función

function wp_include_dir(){
    $wp_include_dir = preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));
    return $wp_include_dir;
}

¿Has intentado hacer bloginfo(‘wpurl’) / wp-content/plugins ?

Solía ​​definirlo como una constante, como los demás…

if(defined('WP_CONTENT_DIR') && !defined('WP_INCLUDE_DIR')){
   define('WP_INCLUDE_DIR', str_replace('wp-content', 'wp-includes', WP_CONTENT_DIR));
}

Todavía se podría consultar con is_dir() y atravesar más, si es necesario.

¿Ha sido útil esta solución?