35 Funciones útiles para functions.php en WordPress

Normalmente cualquier tema de WordPress que utilicemos, ya sea externo o creado por nosotros, tiene un archivo functions.php donde se agrupan las funciones que va a utilizar nuestro tema. Su utilidad puede ser de lo más variada, desde cambiar comportamientos por defecto de WordPress a funciones útiles típicas de cualquier aplicación en PHP.

Seguramente cualquier diseñador que utilice WordPress con frecuencia tiene una serie de funciones que utiliza en todos sus diseños. Yo suelo utilizar un tema vacío (Starkers) que me permite empezar todo de cero, dándome mayor maniobrabilidad. Pero incluyo ciertas variaciones propias, entre ellas mis propios archivos functions.php y style.css.

Estuve pensando en un principio en incluir en este artículo mi archivo functions.php, en el que incluyo una serie de funciones de uso frecuente. Pero luego decidí ampliar el artículo incluyendo funciones sugeridas por distintos autores, para lograr una cobertura mucho más amplia de funciones útiles. Empezamos.

Cargar jQuery
Mediante esta función nos aseguramos de que se incluye una copia de jQuery. Se obtiene desde los servidores de Google para ahorrarnos algo de ancho de banda y para conseguir en teoría más rapidez para el usuario. Si tenemos alguna función relacionada con jQuery debería ir debajo de esta.

Crear Widgets
Esta función seguro que es de sobra conocida y viene además en la práctica totalidad de temas, incluso en starkers. Se puede adaptar en función del nombre del widget, y de lo que queramos que aparezca antes y después del widget.

Taxonomías
El uso de esta función lo he explicado en este artículo sobre cómo crear Taxonomías en mi blog.

Crear Taxonomías en páginas
La anterior función creaba taxonomías en las entradas de nuestro blog. Veremos cómo crearlas en las páginas.
Fuente: http://justintadlock.com/archives/2009/11/09/excerpts-and-taxonomies-for-pages-in-wordpress-2-9
Hay que recordar que en WordPress 2.9 las Taxonomías no admiten jerarquización, como las categorías. Como ejemplo, creamos una Taxonomía para páginas llamada “people”:

Crear Campos Personalizados Globales
Esta función la he descubierto no hace mucho. Fuente: http://digwp.com/2009/09/global-custom-fields-take-two/. Como sabemos, los campos personalizados normales (Custom Fields) en WordPress están asignados a cada entrada o a cada página. Es decir, que un dato que se repita por toda la web habría que estar incorporándolo en cada entrada, en cada página, etc.. Gracias a la función que veremos a continuación podemos crear Campos Personalizados Globales, disponibles en todas las páginas y entradas. Su ubicación es un poco extraña, ya que una vez creados aparecen en el menú de opciones dentro del administrador.

Para usarlo simplemente hay que escribir echo get_option(‘welcomemessage’); o echo get_option(‘todaysite’); etc (relacionados con el ejemplo de la función)

Campos personalizados (Custom Fields)
Fuente: http://www.mattvarone.com/wordpress/useful-functions-for-wordpress/
Esta función permite simplificar el uso de los Campos Personalizados (Custom Fields) que se pueden incorporar en cada entrada o página. Su uso es:
get_custom_field_value( Custom Field Key, Print ); donde:
1. Custom Field Key: ( cadena ) – Nombre del Campo Personalizado que quieres obtener
2. Print: ( booleano, falso por defecto ) – escribe o devuelve el valor.
Ejemplo:

Permitir comentarios anidados (threaded comments)
Para activar los comentarios anidados hay que añadir un código dentro del head de tu tema justo antes de wp_head. Este código se puede incorporar a functions.php, lo que ayuda a limpiar un poco la zona del head. Precisa que la función que incorpora jQuery esté ubicada por encima de esta dentro de functions.php
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Eliminar basura del área head
Según algunos autores, WordPress ubica gran cantidad de código no muy útil en el head. Cosas como el número de versión, y enlaces WLW, RSD…
Para limpiar todo esto basta con esta función.
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Añadir Google Analytics al footer
Esta función nos permite añadir de una manera sencilla Google Analytics.
Sólo requiere cambiar UA-XXXXX-X por tu código (el que te provee Google Analytics). Esta función utiliza el sistema ga.js, pero se puede cambiar a cualquiera de los otros que ofrece Analytics.
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Ajustar el tamaño del extracto
Como sabemos, podemos mostrar el contenido completo de un artículo o su extracto. El extracto tiene un límite de 55 palabras. Esta función te permitirá especificar cualquier longitud (cambia el número 20 a la cifra que quieras).
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Reducir el tamaño del texto
Función para reducir el número de caracteres de una entrada.
Fuente: http://www.mattvarone.com/wordpress/functionsphp-wordpress-themes/
Ejemplo de uso:
1. Caracteres: ( número int, por defecto 250 ) – Número de caracteres que se muestran.
2. Cola: ( cadena, por defecto “…” ) – Texto a mostrar tras el texto cortado.
3. Mostrar: ( booleano, por defecto: true ) – Imprime la lista o lo devuelve para PHP.

La función que va en functions.php es:

Limitar el número de palabras
Ejemplo de uso

La función que va en functions.php es:

Cadena de puntos suspensivos personalizadas para el Extracto en WordPress 2.9+
En los extractos, estos acaban por defecto en “[…]”. Esto lo podemos cambiar a lo que queramos con la función que veremos a continuación. Símplemente reemplaza los puntos suspensivos por la cadena de texto que prefieras.
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/.

Añadir un favicon a tu blog
Con esta función podrás emplazar de manera muy simple un favicon para tu web. Símplemente sube el icono al directorio raíz (el directorio lo puedes cambiar en la función), escribe la función en functions.php y se añadirá automáticamente la línea necesaria en el head de tu página siempre y cuando tengas wp_head en tu fichero head.php de tu tema.
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Añadir un favicon a tu área de administración
Igual que el anterior, pero en vez de para la web, esta vez es para tu área de administración. Crea un icono y súbelo al directorio /images/ (puedes cambiar el directorio si quieres)
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Logo personalizado en el login de admin
Fuente: http://www.chrisdecker.com/wordpress/customize-your-wordpress-admin-panel-login-logo/
Puedes cambiar el logo de WordPress que sale en el login de la página de administración de tu web por otro de tu elección con esta función. Símplemente crea una imagen no mayor de 328 x 84 y súbela al directorio /images/ de tu servidor con el nombre que pongas en la función (en este caso “customlogofilename.png”. Si no lo tuvieras créalo. El código a incluir en functions.php es:

Eliminar el mensaje de actualización de WordPress
Permite eliminar el a veces molesto mensaje que aparece en el panel de administración que nos pide que actualicemos nuestra versión de WordPress.
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Eliminar el mensaje de error en la pantalla de login de admin
Cuando ponemos mal la contraseña un mensaje nos dice que lo que está mal es la contraseña, lo cual no es muy seguro al dar pistas de cual es el error. Con este código en functions.php eliminamos ese problema.

Forzar wp-admin a usar SSL
Util para los que tengan un certificado SSL, ya sea propio o compartido. Es más seguro acceder a el área de administración a través de SSL.

ID de la Categoría en Body y en la clase de la entrada (post)
Por defecto, WordPress no incluye el ID de la categoría de la entrada actual en body_class ni en post_class. Esta función permite añadirlo.
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Obtener el ID de la primera categoría
Otra función útil cuando tenemos diferentes categorías. Permite obtener el ID de la primera categoría de la entrada actual.
Para usarlo símplemente usa get_first_category_ID(); en el archivo template de tu tema.
Fuente: http://digwp.com/2010/03/wordpress-functions-php-template-custom-functions/

Obtener los comentarios más recientes
Con esta función obtenemos los comentarios más recientes.
Para usarlo escribimos dp_recent_comments(6); en el template de nuestro tema, donde el número entre paréntesis es el número de comentarios que queremos que aparezcan.
Fuente: http://www.wplancer.com/how-to-display-recent-comments-without-using-a-plugin-or-widget/

Como vemos en:

tenemos por defecto 10 comentarios con una longitud de 35 caracteres, que podemos cambiar.

Crear un código corto (shortcode) para el enlace de portada
Esta función convierte el shortcode [home] a un enlace a tu página de inicio. Para usarlo símplemente escribe [home] en cualquier entrada de tu blog y WordPress ejecutará la función myHomePage y mostrará el enlace a la home. Puedes probarla para crear otros enlaces. Tienes que cambiar domain.tld por la URL de tu Home, etc..

Eliminar la versión de WordPress del header y del feed

Limpiar pigbacks y trackbacks de los comentarios

Para usarlo, normalmente en comments.php:

Contar el número de comentarios (sin trackbacks ni pingbacks)
Filtramos la función comments_number de WordPress para obtener sólo el número de comentarios, ya que normalmente esta función incluye también pingbacks y trackbacks.
Para usarlo símplemente pon comments_number() donde quieras mostrar el número.

Activar miniaturas (thumbnails), en WordPress 2.9+
Podéis ver cómo funciona en este artículo de mi blog: http://www.emenia.es/nuevo-en-wordpress-2-9-miniaturas-de-entrada-post-thumbnails/.

Para usarlo símplemente hay que poner the_post_thumbnail(); dentro del loop.

Obtener y mostrar la primera imagen de una entrada
Con esta función obtenemos la primera imagen que se encuentre dentro del contenido de una entrada.
Fuente: http://www.mattvarone.com/wordpress/useful-functions-for-wordpress/
Los parámetros son:
1. Número de Imagen: Número de la imagen que deseas obtener (por defecto 0, que es por el número que empieza).
2. Mostrar: ( booleano, por defecto false ) – Muestra o devuelve el valor para php.
Uso de la función:

Y la función, que irá en functions.php, es:

Obtener los artículos más recientes
Fuente: http://www.mattvarone.com/wordpress/functionsphp-wordpress-themes/
Parámetros:
1. Cantidad: (por defecto 5 ) – Número de entradas para mostrar.
2. Categorías: (por defecto todas las categorías ) – Categorías a incluír o excluir.
3. HTML anterior: ( por defecto li ) – HTML antes del enlace al artículo.
4. HTML después: (por defecto /li ) – HTML después del enlace.
Ejemplo de uso:

Obtener los artículos más populares basado en el número de comentarios
Fuente: http://www.gilbertpellegrom.co.uk/top-wordpress-functions-for-your-functions-php-file/
Se puede cambiar el número de artículos cambiando LIMIT al final de $popularposts (en el ejemplo a continuación mostrará los 6 primeros).

Mostrar el CopyrightEsta función muestra una información de copyright dinámica, es decir, se irá actualizando cada año.
Fuente: http://www.mattvarone.com/wordpress/useful-functions-for-wordpress/
Parámetros:
1. Año: ( por defecto el año actual ) – Si se da un año previo al actual se mostrará así: 2006 – 2008.
2. Separador: ( por defecto: ” – ” ) – Texto utilizado para separar los años (en el caso de que se haya declarado un año previo al actual).
3. Cola: ( por defecto “. Todos los derechos reservados.” ) – Texto a mostrar tras la información del copyright.

Uso de la función:

La función que va en functions.php es:

Botón para abrir los PDF en Google Docs
Uso:

Función en functions.php:

Añade un ID al ul que se encuentra dentro de un menu desplegable
Si hemos creado un menú desplegable del tipo wp_list_pages(‘exclude=116,122&title_li=’); veremos que se crea un menú en el que el ul principal tiene la clase topnav. Si queremos que el ul anidado tenga otra clase (por ejemplo subnav) escribiríamos esta función:

Cambiar el avatar por defecto
Primero creamos un nuevo avatar de 100×100 pixels. Luego lo subimos a /wp-content/themes/tu-tema/images/, grabándolo como gravatar.jpg.

Ahora añadimos este código a nuestro functions.php:

Añade los scripts de Contact Form 7 sólo en las páginas seleccionadas
Suelo utilizar Contact Form 7, pero lo malo es que sus scripts se añaden en todas las páginas, esté presente el formulario o no. Con esta función se evita ese problema. Por ejemplo, si sólo lo quiero en la página con ID=33:

AVISO: esta publicación es de hace dos 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.

Valora este artículo para mejorar la calidad del blog ...

FlojitoNo está malEstá bienMe ha servidoFantástico (35 votos, promedio: 4,51 de 5)
Cargando…

Autor: Juan Diaz-Bustamante

Juan Díaz Bustamante es un freelance diseñador y programador de páginas web a través de su empresa de diseño web Emenia. Habitualmente escribe artículos en su blog sobre diseño y programación web.

Comparte esta entrada en
468 ad

LOS BURÓCRATAS DE LA UE ME EXIGEN QUE TE DIGA QUE SI VISITAS AYUDA WORDPRESS PUEDES RECIBIR ALGUNA COOKIE. AQUÍ NO HAY COOKIES DE PUBLICIDAD, COMO LAS QUE SI TE DEJAN GOOGLE, AMAZÓN Y MONTÓN DE SITIOS, SIN AVISAR, PERO EL QUE TE TENGO QUE AVISAR SOY YO. LAS COOKIES QUE TE DEJA AYUDA WORDPRESS SON PARA FACILITARTE LA NAVEGACIÓN, COMPARTIR Y COMENTAR. SI NO QUIERES RECIBIR COOKIES PUEDES NAVEGAR EN MODO PRIVADO, ABANDONAR ESTE SITIO Y PERDERTE EL CONTENIDO GRATIS QUE COMPARTO CADA DÍA SOBRE WORDPRESS O IRTE A UNA ISLA DESIERTA PARA VIVIR AISLADO DEL MUNDO, ESO SÍ, SIN COOKIES. O SINO, SIMPLEMENTE CIERRA ESTA VENTANA COÑAZO Y SIGUE DISFRUTANDO DEL BLOG. SI TIENES CURIOSIDAD SOBRE ESTO DE LAS COOKIES TE DEJO UN ENLACE >> MÁS INFORMACIÓN

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar