Hace ya tiempo que quería comentar algo acerca del fichero my-hacks.php se encarga de contener los hacks que queremos que funcionen sobre nuestra configuración de WordPress. Para ver como funciona hagamos un pequeño ejemplo:
Ejemplo my-hacks.php
Imaginemos que queremos que todas las palabras «ajax» de nuestros posts apunten a la categoría del blog, para ello podemos optar por hacer 2 cosas:
1) Un plugin que nos ejecute la funcionalidad deseada.
2) Añadirlo al fichero my-hacks.php
Diferencia entre plugin y my-hacks.php
La diferencia principal es que el fichero my-hacks.php necesita menos procesos para ejecutarse ya que los plugins son tratados de una forma especial, almacenando en la base de datos los que están activos y los que no. De esta forma si tenemos que hacer una pequeña modificación nos es más rentable, en cuanto a consumo de recursos, añadirlo en el fichero my-hacks.php que usar un plugin el cual tendrá que comprobar cada vez que lo ejecute si está activo o no.
Este fichero además, se llama en la línea 231 del fichero wp-settings.php, lo que singnfica que se ejecuta antes de do_action('init');
que es el primer punto al que podemos asociar un plugin. Para entederlo pensemos en las acciones de WordPress, que son una funcionalidad que nos permite extender las funciones que se ejecutan en ciertos puntos desperdigados por WordPress, editar un post, publicar, comentar, modificar un theme,… podemos marcar esos puntos para que nuestras funciones sean ejecutadas en ellos mediante el uso de add_action();
.
Con my-hacks.php, podemos adelantarnos algo más a la acción init
, teniendo un poco más de control sobre nuestro WordPress.
La funcionalidad
La funcionalidad que deseamos podríamos formarla con una función de 1 línea de tamaño. Veamos el código:
function replaceAjax($content = '') {
return str_replace('ajax', '<a href="'.get_category_link(AJAX_ID).'" title="Ajax">ajax</a>', $content);
}
Simplemente reemplazamos la palabra ajax por un enlace a la categoría Ajax, para ello necesitamos conocer el ID
de dicha categoría. En el Panel de Administrador > Administrar > Categorías.
Añadimos la acción
Una vez establecida la funcionalidad, tenemos que decirle a WordPress que ha de ejecutar dicha funcionalidad en un momento determinado, en nuestro caso al hacer el the_content
.
add_action("the_content", "replaceAjax");
El fichero my-hacks.php
Por lo cual nuestro fichero debería quedar de la siguiente forma.
<?php
/*
* replaceAjax
* Reemplaza las palabras ajax por el enlace a la categoría del blog
*/
function replaceAjax($content = '') {
return str_replace('ajax', '<a href="'.get_category_link(AJAX_ID).'" title="Ajax">ajax</a>', $content);
}
add_action('the_content','replaceAjax');
?>
Ubicación del fichero
El fichero my-hacks.php está, a mi parecer, mal ubicado ya que WordPress lo va a buscar en el directorio raiz, y personalmente creo que todo lo relacionado con la personalización debería ir en wp-content/, pero bueno, podría ser peor… (wp-include/languages/…).
Activación de sistema my-hacks.php
Para evitar comprobaciones de existencia del fichero, WordPress dispone de un check en Opciones > Misceláneas que nos permite activar o desactivar esta propiedad de WordPress.
15 comentarios, 8 referencias
+
#