La diferencia entre editar HTML o PHP se puede resumir de una manera simplista:
Por supuesto que podemos implementar algunas de estas funciones añadiendo un plugin para WordPress, pero como puedes ver podemos evitar añadir software que haga nuestro sitio más lento y más engorroso.
¿Qué es el archivo function.php?
El archivo function.php es un archivo de WordPress que contiene funciones específicas utilizadas por el tema que usamos.
Cada tema tiene su propio archivo function.php y si activamos un tema diferente, usamos diferentes funciones. Normalmente en este archivo vamos a insertar nuestras funciones personalizadas, para cambiar el comportamiento del tema en uso.
Las referencias al archivo function.php se pueden encontrar en el sitio web oficial de WordPress.
¿Dónde puedo encontrar el archivo function.php?
El archivo function.php se encuentra en la raíz de cada tema de WordPress. Para entender qué archivo tenemos que modificar es necesario entender qué tema tenemos en uso, así que desde el menú de administración vamos a Apariencia > Temas y vemos cuál de los temas instalados en nuestro CMS está activo.
Después de haber entendido qué tema tenemos activo en nuestro WP nos conectamos vía FTP a nuestro servidor. El archivo se encontrará en la ruta (en algunos casos puede cambiar) www.nuestrositio.com/wp-content/themes/temaActivo/
Cómo editar function.php con seguridad
Para evitar hacer un daño irreparable recomiendo:
- Realizar todas las pruebas en una copia local de nuestro sitio o en una versión de prueba en línea;
- Antes de proceder con los cambios, haga una copia de seguridad de nuestro archivo function.php;
- Conéctese a nuestro servidor vía FTP y no haga cambios desde el panel de administración de WordPress (si lo desea podemos editar el archivo desde Apariencia > Editor);
- Trabaje en el archivo function.php del tema hijo y no en el tema original. Los cambios en el archivo de función del tema original se sobrescriben si se actualiza el Tema;
- Usa un editor que al menos resalte la sintaxis (aunque los siguientes códigos son muy simples y también puedes editar con herramientas básicas como el bloc de notas);
function.php: trucos de código
Después de entender cómo trabajar con seguridad, veamos algunas de las cosas que podemos hacer con este archivo. Algunos de estos son trucos reales para ayudar a la actividad de un desarrollador web o el trabajo de un consultor de SEO. Por esta razón, de acuerdo a las diferentes profesiones, he dividido estos micro tutoriales en dos secciones.
Algunos de los códigos propuestos son funciones que se activan automáticamente en todas nuestras páginas, a través de los filtros de WP (add_filter), otros sólo después de ciertas acciones (add_action). En algunos casos veremos funciones simples, para ser recordadas en partes específicas de nuestro tema. En este caso, para poder ejecutarlas, tendremos que llamarlas dentro de otros ficheros.
Aparte de un guión, todos los otros que he recuperado aquí o allá en los últimos años y cuando sea posible insertaré referencias.
Todos estos scripts funcionan con la última versión de WordPress, 4.61.
Códigos de desarrollador
Los siguientes scripts pueden ayudar a los programadores y webmasters en la creación de sitios web, pasando a intervenir en algunos aspectos gráficos y de código de las diferentes instalaciones de WordPress, con el fin de personalizar el aspecto gráfico y estructural del CMS.
Cambiar la apariencia de la etiqueta de nube
Para cambiar el tamaño de la fuente y el espaciado de las líneas, la clasificación y el número de elementos en la nube de etiquetas de nuestro sitio podemos usar la siguiente función:
función my_tag_cloud_args($in){
devuelve «smallest=9&largest=26&number=80&orderby=nombre&unidad=px&order=RAND»;
}
add_filter( «widget_tag_cloud_args», «my_tag_cloud_args»);
Como puedes ver en el código que podemos definir, de nuestra nube de etiquetas:
- el tamaño de fuente de las etiquetas menos utilizadas (las más pequeñas);
- el tamaño de fuente de las etiquetas más usadas (más grandes);
- cuántas etiquetas mostrar (número);
- el método de clasificación (clasificación por nombre o clasificación por número de mensajes asociados a la etiqueta);
- la unidad con la que se dimensionan las fuentes (unidad: px, em, pt o %);
- cómo ordenarlas (RAND aleatorio, ASC ascendente, DESC descendente)
Pueden utilizar otros atributos, pero les dejo la referencia de una guía de Roberto Iacono que me parece completa.
Modificar el logotipo para el inicio de sesión de administración
Si queremos personalizar la página de inicio de sesión para los usuarios registrados de nuestro WordPress, para un sitio multiusuario, no necesita plugins específicos, sino unas pocas líneas de código en function.php
function custom_login_logo() {
echo
‘;
}
add_action(‘login_head’, ‘custom_login_logo’);
Con este código nuestra función reemplazará el logotipo clásico de WordPress por una imagen dentro de la carpeta de imágenes del tema que tenemos activo.
Cambiar la cantidad de texto que se muestra en el extracto
Gracias a este código podemos establecer la cantidad de texto que se muestra al ver un cuadro de resumen de vista previa de un mensaje (normalmente incluyendo el título, la imagen, la categoría, el autor y parte del texto).
function custom_excerpt_length($length) {
Devuelve 20;
}
add_filter(‘excerpt_length’, ‘custom_excerpt_length’);
En particular, esta función limita el contenido del texto introductorio del artículo a 20 palabras. Cambiar este valor cambiará la cantidad de texto que se muestra.
Ocultar su versión de WordPress del encabezado
Considerando que la versión de WordPress en uso en un sitio puede ser descubierta de otras maneras, para hacer más complicado el análisis de esta información simplemente agregue la siguiente función al archivo function.php
function wp_remove_version() {
«Regresar»;
}
add_filter(‘el_generador’, ‘wp_remove_version’);
Cambiar automáticamente las fechas de los derechos de autor
Para tratar de proteger nuestro contenido de ser copiado, debe especificar que está protegido por derechos de autor. Además, es necesario indicar para qué intervalo de tiempo es válido.
Para evitar tener que actualizar esta cadena cada año, podemos mostrar dinámicamente estos datos.
El siguiente script recuperará la fecha del contenido más antiguo y la fecha de la publicación más reciente.
función dinamic_copyright() {
global $wpdb;
Copyright_dates = $wpdb->get_results(«SELECT
YEAR(min(post_date_gmt))) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM $wpdb->posts WHERE post_status = ‘publish’);
$salida = »;
if($copyright_dates) {
Derechos de autor = «© » . copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {[0]->lastdate
Derechos de autor .= ‘-» . copyright_dates[0]->última fecha;
}
Salida $ = $copyright;
}
return $output;
}
Una vez que haya insertado este script en el archivo function.php, deberá ejecutarlo donde quiera que aparezca, normalmente en la última línea del pie de página.
En mi caso, por ejemplo, abrí mi archivo footer.php (después de insertar una copia en el tema hijo) y agregué, en el punto que seleccioné para mostrar este rango de fechas,
Adición de imágenes a los feeds
Si queremos personalizar la apariencia de nuestros feeds, haciéndolos más agradables y adjuntando la imagen en primer plano relacionada con nuestras noticias, o si tenemos la intención de crear un newsletter automático que a intervalos predefinidos seleccione los últimos artículos publicados y los envíe a los destinatarios, es necesario añadir una función especial a nuestro archivo function.php.
función ofrecida a RSS($contenido) {
global $post;
if( has_post_thumbnail( $post->ID ) ) {
» . Contento;
}
devolver $contento;
}
add_filter(‘the_excerpt_rss’, ‘featuredtoRSS’);
add_filter(‘the_content_feed’, ‘featuredtoRSS’);
Por ejemplo, el boletín de noticias de este sitio utiliza esta función en combinación con un servicio externo (Mailchimp). En este caso, sin embargo, te digo de inmediato que si tienes Yoast necesitas un paso más, borrando una cadena por defecto.
Desactivación de feeds
Si, por el contrario, hemos descubierto que alguien copia nuestros contenidos, extrayéndolos del feed y publicándolos automáticamente antes que nosotros, podemos (brutalmente) optar por bloquear nuestro RSS.
function fb_disable_feed() {
wp_die( __(‘Las fuentes no están disponibles, visita nuestra página web!’) );
}
add_action(‘do_feed’, ‘fb_disable_feed’, 1);
add_action(‘do_feed_rdf’, ‘fb_disable_feed’, 1);
add_action(‘do_feed_rss’, ‘fb_disable_feed’, 1);
add_action(‘do_feed_rss2’, ‘fb_disable_feed’, 1);
add_action(‘do_feed_atom’, ‘fb_disable_feed’, 1);
No recomiendo usar esta función excepto en casos realmente excepcionales! Muchos todavía utilizan los feeds para mantenerse al día sobre la actividad de los diferentes sitios web que siguen.
Funciones útiles para SEO
El código que se muestra a continuación puede ayudar a todos aquellos que quieran optimizar el SEO de su sitio web creado con WordPress, mejorando la experiencia del usuario y consecuentemente el posicionamiento en los buscadores.
Eliminar el campo URL de los comentarios
Si encuentras que demasiada gente usa comentarios en tus artículos para intentar dar visibilidad a algún sitio web, un incentivo para mejorar la calidad de los comentarios es eliminar el campo URL, aunque sabemos que el enlace saliente se establece automáticamente en nofollow.
add_filter(‘comment_form_default_fields’, ‘unset_url_field’);
function unset_url_field($campos){
if(isset($fields[‘url’]))
unset;
devuelve $fields;
}
En caso de que sea realmente necesario que el usuario inserte un enlace para explicar algún concepto, siempre puede ponerlo en el mensaje que le envíe.
Eliminar páginas/publicaciones de los resultados de búsqueda
Cuando tenemos que eliminar algunas páginas o mensajes de los resultados de búsqueda disponibles para los usuarios, podemos utilizar la siguiente función.
función SearchFilter($query) {
si ($query->is_search) {
$query->set(‘post__not_in’, array(23,44,33,666));
}
devolver $query;
}
add_filter(‘pre_get_posts’,’SearchFilter’);
Para descubrir el id único que distingue cada página/publicación te remito a mi artículo anterior.
Esta función es muy práctica si no queremos que los usuarios lleguen a las páginas de servicio, a las páginas de agradecimiento o a las páginas de destino de las campañas de remarketing.
Mostrar antigüedad o actualización de contenidos
Si queremos explicar a nuestros usuarios qué contenidos han sido actualizados recientemente o no han sido modificados durante mucho tiempo, podemos automatizar esta acción mediante un script.
Los más interesados encontrarán las referencias, explicaciones y código en un artículo dedicado a entender qué contenido está actualizado o no.
Cambiar la calidad de las imágenes (y su peso)
Suponiendo que el peso de un archivo gráfico se reduzca a la fuente, usando un software de edición de fotos, con WordPress podemos elegir la calidad con la que se guardará entre nuestros medios.
El código es el siguiente:
add_filter(‘jpeg_quality’, create_function(», ‘return 100;’ ));
En este caso, por ejemplo, las imágenes se cargarán con un factor de compresión del 100% y, modificando este parámetro, podemos reducir la calidad a valores inferiores (90%, 80%).
Gracias a Massimo della Rovere, por este truco, moderador de una de las mejores comunidades de WordPress en Italia.
Añadir código de seguimiento de Google Analytics
Si nuestro tema no incluye la inclusión de código de seguimiento de Google Analytics, u otro código particular para ser insertado en el encabezado de todas las páginas de nuestro sitio, sin tener que editar el archivo header.php podemos insertar el script para conectar GA directamente desde el archivo function.php
función add_google_analytics() {
eco » «;
}
add_action(‘wp_head’, ‘add_google_analytics’);
Por supuesto, debe sustituir UA-XXXXXXXXXX-X por el identificador de su cuenta de Analytics y, como puede ver, el código anterior ya está en vigor para la ley italiana de cookies.
Reescribir el nombre del autor invitado del mensaje
Si tu sitio alberga varios mensajes de invitados no tienes que crear un nuevo usuario cada vez que publicas uno, pero gracias a esta función puedes utilizar un campo personalizado, que se inserta en el mensaje relacionado con el mensaje de invitado, en el que puedes indicar el nombre del autor.
function guest_author_name( $name ) {
global $post;
autor = get_post_meta( $post->ID, `invito-autor’, true );
si ( $author)
$nombre = $autor;
devolver $nombre;
}
add_filter( ‘the_author’, ‘guest_author_name’);
add_filter( ‘get_the_author_display_name’, ‘guest_author_name’);
La variable personalizada a insertar en el artículo cuyo nombre de autor desea reescribir se llama guest-author y su valor debe ser el nombre del autor de la entrada alojada.
Por supuesto, si tienes otros scripts que proponer o si alguno de ellos no funciona, por favor márcalo en los comentarios de abajo y trataré de ayudarte.
Soy David Rios, CEO de Negocio Vivo. Con años de experiencia, me he especializado en estrategias de Marketing diseñadas específicamente para captar clientes y fortalecer marcas.