Obtener el directorio de plugins desde un tema

9 oct 2013, 12:17:59
Vistas: 23K
Votos: 9

¿Alguien conoce una forma correcta de obtener la ruta del directorio de plugins desde el archivo functions.php de un tema?

He usado plugin_dir_path(FILE), pero como se llama desde functions.php del tema, devuelve la ruta a ese archivo y no al directorio de plugins. Podría manipular la cadena y agregar la ruta de plugins, pero eso se siente casi tan mal como codificar toda la ruta manualmente.

Lo tengo funcionando usando:

require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' );

¡Pero sé que eso es muy anticuado e incorrecto y probablemente sería rechazado por la comunidad de WordPress por usarlo!

¿Existe alguna función estándar de WordPress que pueda usar para esto?

0
Todas las respuestas a la pregunta 2
2
19

Quizás lo que estás buscando es:

WP_PLUGIN_DIR  // ruta completa, sin barra al final  
WP_PLUGIN_URL  // URL completa, sin barra al final

Consulta la documentación

9 oct 2013 12:25:37
Comentarios

Ten en cuenta que hay filtros que podrían mover la ubicación a otro lugar. Esta podría ser la mejor opción, pero definitivamente no es una suposición segura.

kaiser kaiser
9 oct 2013 14:15:15

La documentación enlazada dice lo siguiente sobre las constantes: «Estas no deberían ser usadas directamente por plugins o temas, pero están listadas aquí para completitud.» Así que probablemente no debería sugerirse como solución, cuando el consejo es no usarlas en tu tema.

Gchtr Gchtr
30 mar 2018 12:59:56
3
11

Creo que esto puede ser más confiable que depender de las constantes.

$url = plugins_url();
$path = parse_url($url);
var_dump($path['path']);

La razón por la que sospecho que puede ser más confiable es que la función plugins_url considera tanto las constantes WPMU_PLUGIN_URL como WP_PLUGIN_URL y también respetará el filtro plugins_url.

9 oct 2013 18:00:00
Comentarios

Este es el método menos improvisado y debería ser la mejor respuesta.

CGeorges CGeorges
16 mar 2016 01:06:03

¿qué pasa con los plugins incluidos dentro de los temas?

brett brett
3 ene 2019 18:18:38

... y luego usar untrailingslashit( get_home_path() ) . $path['path'] para obtener la ruta completa del servidor.

squarecandy squarecandy
16 ago 2021 05:06:07