Ozh, escribe un artículo en el que nos muestra los cambios más significativos de la nueva versión de WordPress, la 2.6, en relación a los desarrolladores de plugins.
Puesto que han cambiado muchas de las opciones del núcleo de WordPress, nos veremos obligados a realizar modificaciones de la mayoría de plugins.
1. El directorio wp-content
Vimos que WordPress daba la posibilidad de sacar la carpeta wp-content/
de la carpeta web y esto ha ocasionado una gran cantidad de cambios entre ellos el nacimiento de dos nuevas constantes que se encargan de conocer la nueva ruta.
Actualmente usamos la constante ABSPATH
para hacer referencia a la ruta de la raiz de nuestro WordPress.
$plugin_path = ABSPATH . '/wp-content/plugins/' . plugin_basename(dirname(__FILE__));
$plugin_url = get_option('siteurl') . '/wp-content/plugins/' . plugin_basename(dirname(__FILE__));
Esta constante seguirá disponible, pero ya no tiene por que estar el directorio wp-content/
colgando de la raíz de WordPress. Por ese motivo tendremos que reemplazarlo para tener un código más permisivo:
// Pre-2.6 compatibility
if ( !defined('WP_CONTENT_URL') )
define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
if ( !defined('WP_CONTENT_DIR') )
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
// Cogemos la ruta
$plugin_path = WP_CONTENT_DIR.'/plugins/'.plugin_basename(dirname(__FILE__));
$plugin_url = WP_CONTENT_URL.'/plugins/'.plugin_basename(dirname(__FILE__));
Nacen WP_CONTENT_DIR
y WP_CONTENT_URL
, dos constantes que tendremos que tener muy presentes.
2. Incluyendo el fichero wp-config.php
El fichero wp-config.php tambien permite ser sacado de nuestra carpeta web, lo que significa que tenemos el mismo problema anterior, no debemos creer que todos los usuarios lo tendrán instalado en la raíz de su WordPress.
Antiguamente, al estar wp-content/
en la raiz podíamos usar../../../
para llegar al directorio raíz y usar wp-config.php en nuestros plugins.
require_once('../../../wp-config.php');
Esto en WordPress 2.6, tambien ha cambiado:
$root = dirname(dirname(dirname(dirname(__FILE__))));
if (file_exists($root.'/wp-load.php')) {
// WP 2.6
require_once($root.'/wp-load.php');
} else {
// Antes de 2.6
require_once($root.'/wp-config.php');
}
Poco a poco van cerrandose los tickets del Roadmap y va quajando más lo que tendremos los usuarios y desarrolladores de WordPress 2.6, así que mientras tanto, tendremos que estar atentos a todos estos cambios.
10 comentarios, 4 referencias
+
#