La mejor forma de incluir wp-config.php en WordPress

28 ago 2014, 00:33:43
Vistas: 13.8K
Votos: -6

Me preguntaba cuál es la mejor manera de incluir wp-config.php en un plugin. He leído sobre rutas relativas que pueden fallar si los archivos del plugin están ubicados en otro lugar.

3
Comentarios

¿Estás hablando realmente de un plugin de WordPress o estás intentando cargar WordPress desde un archivo externo?

Andrew Bartel Andrew Bartel
28 ago 2014 01:08:23

Si modificas tu pregunta para que sea más específica sobre tu problema real, podrías obtener mejores respuestas.

Otto Otto
28 ago 2014 01:09:34

Tenía problemas al usar $wpdb en mi plugin, vi un ejemplo que usaba include wp-config. Lo intentaré nuevamente con $wpdb

stijn.aerts stijn.aerts
28 ago 2014 01:14:24
Todas las respuestas a la pregunta 3
2

La mejor manera es no hacer eso. No hay necesidad de que un archivo de plugin incluya nunca el wp-config.php.

Lo estás haciendo al revés. WordPress carga los plugins. Los plugins no cargan WordPress.

28 ago 2014 00:50:38
Comentarios

Hay razones válidas para incluir wp-config.php. Por ejemplo, para plugins que reciben notificaciones de APIs, un archivo de callback puede incluir el archivo de configuración para acceder a la base de datos. En este caso, hacer que el archivo de callback sea cargado desde WordPress es una pésima práctica.

ethmz ethmz
25 jun 2018 14:34:23

Estás equivocado. Esta respuesta quizás sea cierta si escribes un plugin básico de ejemplo como 'crear un área de texto bonita en el frontend'. ¿Pero qué pasa si realmente desarrollas un software grande y necesitas tener Pruebas Unitarias automáticas? Mi shell carga una Prueba Unitaria dentro de mi Plugin, sin el núcleo de WordPress ni su funcionalidad. Las opciones varían entre enlaces simbólicos, inclusión de rutas absolutas o namespaces al estilo Symfony, pero tendrías que modificar el archivo principal.

clockw0rk clockw0rk
9 jul 2021 01:59:55
0

wp-config.php siempre debería estar ya cargado y no debería necesitar ser incluido.

En la mayoría de los casos, la mejor manera de asegurarse de que $wbdp esté incluido en tus funciones de plugins y temas es asegurarse de que los archivos de tu tema y plugin estén en la ubicación correcta y que tu plugin o tema esté activo.

Si global $wpdb aún no está definido, entonces no deberías necesitar incluir ningún archivo núcleo de WordPress. Lo más probable es que tu función se esté ejecutando demasiado pronto, y deberías colocarla dentro de una acción, como muplugins_loaded, plugins_loaded, after_setup_theme, init o wp_loaded.

Si tienes un archivo separado que usas como una solicitud ajax, entonces deberías cambiarlo y usar los hooks de ajax de WordPress en su lugar.

El único momento válido que he encontrado para incluir wp-config.php es para expandir el común if ( ! defined( 'ABSPATH' ) ) exit;, de modo que los usuarios sean redirigidos a la página de inicio cuando intenten acceder directamente a cualquiera de los archivos o directorios de mi tema o plugin.

<?php
/**
 * El silencio es oro, pero en realidad quiero que la gente vea el sitio web.
 */
if ( ! defined( 'ABSPATH' ) ) {
    // Llamar a dirname() 4 veces ya que este archivo está en '/wp-contents/plugins/plugin-dir/' y wp-config.php está en '/'
    require_once dirname( dirname( dirname( dirname( __FILE__ ) ) ) . '/wp-config.php';
    // Redirección permanente a la página de inicio.
    wp_safe_redirect( home_url(), 301 );
    die;
}
24 nov 2017 07:35:28
2
-4

Si solo deseas acceder a wp-config.php sin el resto de las funciones de WordPress.

Sigue estos pasos:

  1. Crea un archivo wp-settings.php vacío en el directorio de tu plugin

  2. Añade esto a tu archivo PHP

    define( 'ABSPATH', $_SERVER['DOCUMENT_ROOT'] . '/wp-content/plugins/YOUR_PLUGIN_DIR/' ); 
    require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-config.php' );
    

Esto funciona perfectamente para WordPress 4.2.4 "hacia abajo y hacia arriba" y lo he probado en nuestro propio plugin mywebapplets.

13 ago 2015 13:37:14
Comentarios

Como @Otto dijo, esto no debería hacerse.

Nicolai Grossherr Nicolai Grossherr
13 ago 2015 13:45:44

En realidad no es un mal comienzo, pero no funcionará con WordPress instalado en un subdirectorio.

xjlin0 xjlin0
25 jul 2021 18:56:01