Crea un plugin para liberar el fichero functions.php

Si no te quedó claro si es mejor usar un plugin o el fichero functions.php ¿que te parecería crear tu propio plugin para incorporar tus funciones favoritas?.

Es lo que hice hace tiempo y tengo que decir que estoy encantado. Simplemente monté un pequeño plugin a mi medida en el que incorporé las funciones que uso más a menudo y así cuando monto un sitio nuevo solo tengo que instalarlo, personalizar alguna URL absoluta – que la tiene – y activarlo para que todo funcione.

La ventaja, si te lo preguntas, sobre usar el fichero functions.php de tu tema es principalmente que puedes actualizar tu tema sin temor a perder tus personalizaciones, pues tus funciones están en tu plugin, no en el tema.

Hacerlo es muy sencillo …

Crear fichero del plugin

Lo primero es hacer el plugin. Para eso creas un archivo PHP nuevo con tu editor de código favorito y le añades la cabecera estándar para que WordPress lo reconozca como plugin, algo así:

<?php
/*
Plugin Name: Funciones
Plugin URI: https://ayudawp.com/
Description: Plugin para liberar de funciones el fichero <code>functions.php</code> y activarlo a placer (o no) .
Version: 1.0
Author: Fernando Tellado
Author URI: https://tellado.es
License: GPLv2 o posterior
*/

Añadir funciones

A partir de ahí simplemente vas añadiendo tus funciones y cuando estés contento guardas los cambios. Este sería un ejemplo con un par de funciones típicas que ya he publicado anteriormente:

<?php
/*
Plugin Name: Funciones
Plugin URI: https://ayudawp.com/
Description: Plugin para liberar de funciones el fichero <code>functions.php</code> y activarlo a placer (o no) .
Version: 1.0
Author: Fernando Tellado
Author URI: http://tellado.es
License: GPLv2 o posterior
*/

// Logo personalizado en login

add_action("login_head", "my_login_head");
function my_login_head() {
echo "
<style>
body.login #login h1 a {
background: url('".get_bloginfo('template_url')."/images/awloginlogo.png') no-repeat scroll center top transparent;
height: 135px;
width: 135px;
}
</style>
";
}

// personalizar url logo acceso
add_action( 'login_headerurl', 'my_custom_login_url' );
function my_custom_login_url() {
return 'https://ayudawp.com';
}

//Cambiar texto alt del logo de login
add_action("login_headertitle","my_custom_login_title");
function my_custom_login_title()
{
return 'Otro sitio creado por Fernando Tellado';
}

Instalar y activar el plugin

Luego lo subes a la carpeta ‘/plugins/‘ de tu instalación de WordPress y ya podrás activarlo como cualquier otro plugin, solo que este hace funciones específicas para ti.


Duda Nº1: ¿Tengo que seguir usando el fichero functions.php para algo o ya no?.

Respuesta Nº1: Seguro que si. Lo que tienes que tener en cuenta es lo siguiente:

  • Si la función afecta o está relacionada con el tema (o temas) entonces irá mejor en el fichero functions.php
  • Si la función está relacionada con funcionalidades generales de WordPress entonces irá mejor en tu plugin de funciones
  • Hacerlo así (plugin por un lado y ‘functions.php’ por otro) es un modo mucho más lógico y ordenado de hacer las cosas

Nota: Por supuesto, una vez actives el plugin ya puedes eliminar (de hecho debes hacerlo) las funciones que incorpore del archivo ‘functions.php’ de tu tema y ya estén en el plugin.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(40 votos, promedio: 4.7)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

137 comentarios en “Crea un plugin para liberar el fichero functions.php”

  1. Para mí es fijo también eliminar Yahoo, IM, AIM y Jabber. Todavía no sé como WordPress lo sigue manteniendo.

    Y utilizo el archivo functions.php en mu-plugins para que no haga falta activarlo y tampoco se desactive por error.

  2. Potysoft Potysoft

    Muy interesante, es una buena forma de dejar el functions limpio, e incluso se podría hacer una administración que te permitiría activar o no las distintas funciones.

  3. Hola, recién estoy empezando a aprender wordpress y me ha quedado un duda, por que al final del archivo, no se cierra " <?php " 

        < ? p h p

    add_action ( ' admin_footer ' , ' posts_status_color ' ) ;

  4. Eric | Negocios en I

    Uff vaya informacion que compartiste en este post, ya cree mi plugin y funciona al 100% me diste mas de lo que buscaba en este sitio Fernando. Muchas gracias y te seguire leyendo 😉

  5. Gracias de nuevo Fer por tu explicación, voy a bajar tu plugin y quiero crearme uno mío, si funciona después lo comparto para el que quiera usarlo. Está tan fácil y clara tu explicación que me parece facilísimo crear plugins, yo creía que era muy difícil, saludos

  6. Alejandro Navarrete

    Estimados,
    Copie el codigo en un nuevo archivo PHP y lo descargue y de las dos formas me arrojo error al activarlo.
    Error:
    El plugin ha provocado una salida inesperada de 3
    caracteres durante la activación. Si ves mensajes de “cabeceras ya
    enviadas”, problemas con los feeds de sindicación u otros problemas,
    trata desactivar y eliminar el plugin.
    Quien me podria ayudar…cualquier ayuda serviria bastante

    1. Kaled Kelevra

      Si te muestra ese error, prueba a cerrar la sentencia php al final del documento con «?>» (sin las comillas).

  7. Miguel Ángel López Harillo

    Muchas gracias por la información. Lo he hecho en mi blog y de momento funciona perfectamente.

  8. No tengo ni idea donde está la página de utilidades.Solo aparece una gran página de publicidad de mi hosting,pero explican poco el funcionamiento.Mis url no parece estar activas,y se han producido miles de errores al importar.¿?

      1. Gracias Fernando, tengo la publicidad con plugins de Google Adsense¿Se ha de ¿Ha de colocar los códigos en algún sitio? Lo digo porque me los rechaza el plugin, al parecer al ser dinámicos no se han de colocar,no obstante hay 75 anuncios para mis cinco blogs, que los han elegido ellos,solo secolocan 3, pero que ellos van variando,supongo según la dinamica.

  9. Hola Fernando, desde hace tiempo que el botón (enlace) de «responder» en los comentarios anidados dejó de funcionarme y no supe nunca el porqué. Estoy cansado de buscar y leer y no encuentro nada que me oriente a solucionarlo.

    Desde el panel de admin de wordpress si que puedo responder, pero luego los usuarios no pueden seguir la conversación y se me ensucia todos los temas.

    Si me pudieras ayudar te estaría eternamente agradecido. Un saludo y gracias por tus artículos, que para los que estamos empezando nos vienen como anillo al dedo!

    1. Puede que sea algún plugin que interfiere con el sistema de comentarios. Deberías desactivarlos, probar si funciona, y luego ir activando uno a uno hasta detectar el que interfiere para no usarlo y usar uno compatible

      1. Gracias por la respuesta, al final detecté que se trataba de una configuración de SEO BY YOAST. No me había fijado que en la descripción de una de sus funciones indicaba que podía causar ese problema.

      1. Alonso Fernández

        Saludos Fernando,

        He intentado aplicar esto como un plug-in o en el archivo functions pero no me funciona nada, la orden sigue sin completarse.

        Que más debo hacer?

  10. Rubén Vázquez Vélez (RubiWorks

    Muchísimas gracias Fernando!! Acabo de hacer un plugin para un cliente y no veas de la que me has salvado. Ahora tengo las funciones que todo el año hacía a pelo en un simple plugin. Desarrollaré uno para cada cliente y voilá!! 😀

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba Ir al contenido