Cambia el texto “Read more” con una simple función

Cuando hablaba de las ventajas de un plugin de funciones, una de las principales es que, si añades código que afecta al tema, aunque lo actualices, el código seguirá funcionando pues es una función que realiza una llamada externa, en la que no has modificado ningún fichero original del tema.

Pues bien, una de las modificaciones más típicas es cambiar el texto “Sigue leyendo“, o “Read more” que llevan todos los temas cuando muestran el extracto de una entrada.

Por supuesto, podrías ir al archivo 'index.php' de tu tema y cambiar la línea del loop, pero otra opción es añadir un pequeño código al fichero functions.php de tu tema o a tu plugin de funciones.

Simplemente es este código:

// Cambiar texto de "read more"
function be_excerpt_more( $more ) {
	return 'Dale que hay más ...';
}
add_filter( 'excerpt_more', 'be_excerpt_more' );

La línea importante, donde defines tu propio “Read more”, es en la cadena return, simplemente sustituye el texto entre comillas simples por el tuyo, que en este caso he utilizado ‘Dale que hay más …

Luego, si eres de los que no están nunca contentos, siempre puedes modificar el “Leer más” en cada entrada con este truco.

Crea tu primer plugin WordPress

Venga, que es muy fácil. Vamos a crear nuestro primer plugin WordPress, y una vez hecho este ya solo tienes que lanzarte y empezar a crear tus propias criaturas, poco a poco.

Además, que no necesitas ser programador para hacer tu primer plugin WordPress, solo seguir unas sencillas líneas. Lo único que necesitas es un editor de texto plano, como Notepad de Windows o TextEdit de Mac, aunque yo te recomiendo mejor Notepad++ para Windows y Fraise para Mac.

¡Vamos a ello!

1. La Cabecera del plugin

Un plugin WordPress debe tener una serie de información para que WordPress lo identifique como tal y, sobre todo, funcione. Lo primero de todo es abrir el melón con la etiqueta que lo identifique como código PHP.

Así que abre tu editor de código favorito, de los que comentamos antes, y añade lo siguiente en la primera línea:

<?php

A partir de aquí le añadimos texto que le dirá a WordPress como se llama el plugin, quien lo ha hecho, qué hace y algunas cosas más. Sería algo así:

/*
Plugin Name: Entradas a colores
Plugin URI: http://ayudawordpress.com/
Description: Con este plugin se cambia el color de fondo en la administración de entradas, según si su estado es Publicada, Borrador o Pendiente de revisión. El código que utiliza es <a href="http://ayudawordpress.com/distinto-color-segun-el-estado-de-las-entradas/">este</a>.
Más información sobre como se ha creado este plugin en <a href="http://ayudawordpress.com/crea-tu-primer-plugin-wordpress/">este artículo</a>
Version: 0.1
Author: Fernando Tellado
Author URI: http://tellado.es
License: GPLv2 o posterior
*/

Es vital que esta sección de cabecera comience con /* y termine con */, lo que indica que es texto que no se ejecuta, pero que WordPress usa para mostrar la información de tu plugin una vez instalado.

2. El código

Hasta ahora solo hemos preparado la infraestructura, pero en realidad nuestro plugin no hará nada, así que ya es hora de añadirle el código que – de verdad – lo hará útil.

Para este primer plugin te recomiendo usar alguna de las funciones PHP que he ido publicando, y que tienes en este archivo de la tag functions, te valdrá prácticamente cualquiera de los códigos.

Yo he elegido uno que cambia el color de fondo de las entradas en la página de administración de las mismas, dependiendo de su estado.

Simplemente copia este código y lo añades a continuación de la cabecera:

function posts_status_color() {
?>
  <style>
  .status-draft { background: #FCE3F2 !important; }
  .status-pending { background: #FCFC85 !important; }
  .status-publish { /* por defecto */ }
  .status-future { background: #C6EBF5 !important; }
  .status-private { background: #E7C7B4; }
  </style>
<?php
}
add_action('admin_footer','posts_status_color');

Tras añadir el código nuestro plugin ya estaría completo, simple pero efectivo. Quedaría así:

<?php
/*
Plugin Name: Entradas a colores
Plugin URI: http://ayudawordpress.com/
Description: Con este plugin se cambia el color de fondo en la administración de entradas, según si su estado es Publicada, Borrador o Pendiente de revisión. El código que utiliza es <a href="http://ayudawordpress.com/distinto-color-segun-el-estado-de-las-entradas/">este</a>.
Más información sobre como se ha creado este plugin en <a href="http://ayudawordpress.com/crea-tu-primer-plugin-wordpress/">este artículo</a>
Version: 0.1
Author: Fernando Tellado
Author URI: http://tellado.es
License: GPLv2 o posterior
*/
function posts_status_color() {
?>
  <style>
  .status-draft { background: #FCE3F2 !important; }
  .status-pending { background: #FCFC85 !important; }
  .status-publish { /* por defecto */ }
  .status-future { background: #C6EBF5 !important; }
  .status-private { background: #E7C7B4; }
  </style>
<?php
}
add_action('admin_footer','posts_status_color');

Ya podemos guardarlo, con el nombre que queramos. Eso si, es importante que no dejes espacios en el nombre y que la extensión sea .php. Podría ser algo como … entradas-a-colores.php

3. El plugin

Pues ¡ya tenemos el plugin creado!. Ese archivo PHP es nuestro plugin. Para subirlo a WordPress antes hay que comprimirlo en formato ZIP. Usa tu programa favorito y comprímelo. De nuevo, el nombre es importante que no contenga espacios a ser posible.

Ahora solo queda instalarlo. Para ello vas a la administración de tu WordPress y eliges el menú ‘Plugins -> Añadir nuevo‘ y, en la siguiente pantalla eliges la opción de “Subir“. Eliges el fichero recién comprimido de tu ordenador y haces clic en “Instalar ahora“.

plugin6 plugin5 plugin4

Una vez instalado ya estará disponible en la página de Plugins y lo podrás activar para, en este caso, mostrar las entradas a colores según su estado.

Fácil ¿eh?. ¡Venga, te toca!

Documentación para crecer: WordPress Codex

Insertar Slideshare con oEmbed

oEmbed es un sistema, integrado en WordPress, mediante el cual puedes visualizar contenido multimedia solo con añadir la URL en el editor de WordPress.

Este sistema, no obstante, no permite mostrar todo tipo de contenidos existentes, sino que WordPress por defecto contempla algunos pero no todos.

Por ejemplo, puedes insertar vídeos de YouTube, de Vimeo, o fotos y sets de Flickr, pero no puedes hacer lo mismo con tweets – aunque ya expliqué como hacerloni con presentaciones de Slideshare.

Si quieres ampliar las posibilidades de oEmbed en WordPress siempre puedes instalar el plugin Embedly, que añade tropecientos servicios, más de los que vas a usar nunca, pero si quieres ahorrarte un plugin, y en realidad lo que te falta es usar este sistema para insertar presentaciones de Slideshare al modo más fácil, solo tienes que añadir el siguiente código a tu plugin de funciones o pegarlo en el archivo functions.php:

// Añadir Slideshare a oEmbed
function oembed_slideshare(){
wp_oembed_add_provider( 'http://www.slideshare.net/*', 'http://api.embed.ly/v1/api/oembed');
}
add_action('init','oembed_slideshare');

Guardas los cambios y ya lo tienes

Mostrar miniaturas de vídeos YouTube en WordPress

A través de la API de desarrolladores de YouTube hay unos códigos que podemos usar para mostrar en nuestro sitio miniaturas de vídeos YouTube, mediante un ‘shortcode’.

Lo primero es añadir el siguiente código al fichero functions.php o nuestro plugin de funciones:

/*
    Shortcode para mostrar miniaturas youtube en wordpress
    Uso:
    [miniatura_youtube id="VIDEO_ID" img="0" align="left"]
    VIDEO_ID= ID del vídeo Youtube
    img=0,1,2 o 3
    align= left,right,center
*/
function mininaturas_youtube($atts) {
     extract(shortcode_atts(array(
          'id' => '',
          'img' => '0',
          'align'=>'left'
     ), $atts));
    $align_class='align'.$align;
    return '<img src="http://img.youtube.com/vi/'.$id.'/'.$img.'.jpg" alt="" class="'.$align_class.'" />';
}
add_shortcode('miniatura_youtube', 'miniaturas_youtube');

Una vez guardados los cambios podemos ya insertar el nuevo ‘shortcode’, que aceptará los siguientes parámetros: El ID del vídeo, el tamaño de imagen (0 para 480*360px, 1 para 120*90) y la alineación de la imagen (left, right, center).

Y sería algo así:

[miniatura_youtube id="3Jt7-nBfULU" img="0" align="center"]

Y verías algo así …

Contenido exclusivo para usuarios registrados

Si quieres fidelizar a tus visitantes, ofrecer un valor añadido para que se registren en tu WordPress, un modo de hacerlo es ofrecer que parte del contenido sea exclusivo, de manera que solo los usuarios registrados lo vean.

Estoy hablando de que, por ejemplo, si redactas un tutorial, ofrezcas la descarga en PDF solo para usuarios registrados, o fotos exclusivas, o incluso un vídeo de “cómo hacerlo”, lo que sea. El usuario normal accederá al contenido normal y el registrado a un plus que favorece el registro.

Como siempre veremos dos maneras de hacerlo …

1. Contenido exclusivo con plugin

Hay muchos plugins que permiten definir partes de contenido solo para usuarios registrados, pero como siempre recomiendo Members para la gestión fina de usuarios, y si vas a tener muchos usuarios registrados ya lo tendrás instalado (y sino ya estás corriendo a hacerlo), aprovecharemos que este plugin tiene una opción por defecto para hacer precisamente de lo que estamos hablando.

Además, como es opción por defecto no tienes que activarla, nada más instalarlo ya te permite restringir contenido y, en la página de ajustes, definir el mensaje de error, que puede contener, a su vez, shortcodes o HTML para personalizar ese mensaje.

Una vez activo puedes, ya desde el editor, definir quien verá la entrada. Y esta es la limitación de Members, que no puedes marcar parte del texto como exclusivo, sino que trabaja sobre toda la entrada. Eso si, puedes definir qué perfiles de usuario verán el contenido y quienes no, lo que no está nada mal.

Si quieres actuar sobre parte del contenido entonces puedes usar las siguientes opciones …


¿Que no te gusta Members?, o prefieres restringir solo parte del contenido, pues hay otro plugin, Hidepost, que ofrece el shortcode “[hidepost]” en el que puedes definir el nivel mínimo de usuario que podrá ver el contenido, todo o en parte.

2. Contenido exclusivo mediante código

Por supuesto, también puedes añadir código a tu fichero functions.php o a tu plugin de funciones. Para ello puedes usar esta extensa guía de como ofrecer contenido exclusivo a usuarios registrados, o con este otro código, que crearía un shortcode llamado exclusivo:

//Shortcode para contenido exclusivo
add_shortcode( 'exclusivo', 'contenido_registrados' );
function contenido_registrados( $atts, $content = null ) {
        if( is_user_logged_in() ) return '<p>' . $content . '</p>';
        else return;
}

Una vez guardados los cambios solo tienes que usar el shortcode siguiente:

[exclusivo]Aquí el contenido exclusivo[/exclusivo]

Ahora ¡a jugar!. Yo me quedo investigando como permitir acceso solo a Angelina Jolie ;)

Añadir paginación a las entradas

paginación

Cuando expliqué como mejorar el bouce rate en WordPress dejé una lista de 10 métodos para hacerlo, pero me guardé un modo más, bastante sencillo todo sea dicho de paso, para hacerlo.

Me estoy refiriendo a cortar las entradas largas en varias páginas, añadir paginación a nuestras publicaciones más extensas. De este modo aumentamos la permanencia en el sitio y rebote de visitas entre enlaces internos, lo que mejorará nuestro SEO.

Además, hacerlo es bien sencillo, aunque no obvio porque no tenemos un icono en el editor para cortar entradas en varias páginas, al menos por defecto, pero fácil es, y mucho.

Para ello solo tienes que añadir el siguiente código en el lugar concreto donde quieras “cortar” tu entrada, y lo puedes hacer cuantas veces quieras:

<!--nextpage-->

Cuando publiques, y si tu tema lo soporta (casi todos lo hacen) tu entrada se cortará en el lugar elegido, ofreciendo acceder a las siguientes páginas mediante enlaces numerados, tantos como páginas (cortes) tenga tu entrada.

¿Y qué hago si me tema no me hace los “cortes”?. Hay pocos pero los hay. Algunos temas no incorporan el código necesario para que se corten las entradas en varias páginas. Si así fuera solo tienes que añadir el siguiente código al ‘loop‘ del archivo single.php de tu tema activo:

<?php wp_link_pages(); ?>

Guardas los cambios y ya se mostrará la paginación.

Si quieres un ejemplo de una entrada paginada tienes la ya famosa “Cómo elegir un buen hosting para WordPress

Barra de admin, solo para los admin

La nueva barra de admin de WordPress se muestra por defecto para todos los usuarios registrados pero si quieres que solo la visualicen los administradores de tu WordPress solo tienes que añadir un pequeño código.

Para ello abre el fichero functions.php de tu tema activo, o modifica tu plugin de funciones, y añade el siguiente trozo de código:

//Barra de admin solo para admins
if (!current_user_can('manage_options')) {
	add_filter('show_admin_bar', '__return_false');
}

Guardas los cambios y ya lo tienes.

Cambia el estilo de tus smileys

Cada vez se usan menos en blogs, pues parece que todos nos hemos puesto un poco serios, pero los smileys siguen totalmente en vigor, especialmente en las redes sociales.

Esas pequeñas caritas nos ayudan a transmitir emociones en los textos, a hacer un poco más humana la publicación, aunque sea ayudándonos de iconos simples como son los smileys.

Ahora bien, a veces los smileys no se muestran integrados en el texto – que es su objetivo – ya que al ser imágenes heredan el mismo estilo del resto de imágenes de tu tema, y si tienes definido un borde o sombreado para las imágenes, los smileys también se mostrarán con esos bordes y demás florituras, y seguro que no es lo que te gustaría.

Afortunadamente solucionarlo es muy fácil, pues solo tienes que definir una clase CSS para los smileys, de modo que no tengan nada de adorno alrededor y así se integren mejor en los textos donde los incluyas.

Abre la hoja de estilos de tu tema WordPress, normalmente denominada style.css y añade la siguiente clase:

/* Clase CSS para quitar adornos a los smileys */
img.wp-smiley {
	background: transparent;
	border: none;
	margin: 0;
	padding: 0;
}

En el código hacemos que el fondo sea transparente, que no tenga borde, sin márgenes que separen el smiley del texto y sin borde de ningún tipo.

Guardas los cambios y ya lo tienes ;)

Enlaces permanentes personalizados sin mod_rewrite

Aunque cada vez es más difícil encontrar un proveedor de hosting que no ofrezca el módulo de Apache ‘mod_rewrite, necesario para que WordPress pueda usar enlaces permanentes personalizados, distintos de los enlaces permanentes por defecto, aún queda alguno por ahí.

Por supuesto, si te encuentras alojado en uno de estos proveedores corre a buscar un proveedor de hosting profesional, pero entretanto, y si admite el uso de htaccess, puedes usar un truco … temporal, mientras cambias de proveedor de alojamiento.

Solo tienes que usar la directiva “ErrorDocument” añadiendo la siguiente línea al fichero ‘.htaccess‘, y si no existe lo creas:

ErrorDocument 404 /index.php

Guardas los cambios y podrás usar enlaces permanentes personalizados, casi igual que si tuvieras el módulo ‘mod_rewrite‘, con algunas salvedades, así que recuerda que es una solución temporal mientras cambias de casa a tu WordPress, el se lo merece.

Cambiar enlaces de tu RSS a Feedburner

No hace falta que me repita, porque ya he explicado varias veces las ventajas de usar un servicio como Feedburner para gestionar nuestros RSS en vez de los feeds por defecto, así que iré directamente al grano.

Cuando ya tienes un RSS de Feedburner lo siguiente es ofrecerlo a tus visitantes, y para eso tienes que hacer un par de cosas, a saber …

  1. Anunciarlo bien, quizás en tu barra lateral, con un enlace e icono bien clarito
  2. Cambiar los enlaces a los feeds por defecto para que dirijan a tus visitantes al RSS de Feedburner

Para lo primero no hay prácticamente opciones, creas un widget o similar y lo pones a tu gusto, pero para lo segundo ya tenemos varias posibilidades, vamos a verlas todas …

1. Plugin

Lo primero que se os ocurre a muchos es instalar un plugin que haga el cambio por nosotros, lo que no es mala opción, y de paso nos evitamos tener que tocar código, y además funcionará aunque cambiemos de tema en nuestro WordPress, que por si solo ya es un muy buen argumento.

Para esta utilidad hay muchos, y quizás el más utilizado es FD Feedburner, aunque siempre puedes usar el oficial de Google.

2. Modificar el tema

Esta opción, aunque asuste a los más nuevos en esto del desarrollo, en realidad es muy sencilla y apta para todos los públicos. La principal ventaja es que no tienes que instalar un plugin, con el consiguiente ahorro en consumo de recursos, para algo tan simple como una redirección que puedes hacer tu mismo en unos segundos.

El proceso es muuuuy sencillo, pero hay 2 posibilidades …

A: Enlace en la cabecera del tema

  1. Abres el fichero header.php de tu tema activo
  2. Localizas las líneas de código para la suscripción al feed, como esta:
    <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
  3. Lo sustituyes por algo así:
    <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="http://feeds.feedburner.com/AyudaWordPress" />

    Simplemente cambia la URL del RSS de Feedburner de Ayuda WordPress (http://feeds.feedburner.com/AyudaWordPress) por el tuyo.

B: Función que genera los enlaces en la cabecera

Esta opción, disponible desde WordPress 3.0, la encontrarás en temas tan comunes como el mismo Twenty Eleven. En este caso no encontrarías los enlaces de antes en el fichero header.php, sino que tendrías que buscar en otro archivo, en functions.php del mismo tema este código:

add_theme_support( 'automatic-feed-links' );

Pues bien, si este es el caso lo que tienes que hacer es esto (también sencillo):

  1. Borras la línea anterior del fichero ‘functions.php
  2. Añades la siguiente línea al fichero ‘header.php‘ de tu tema
    <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="http://feeds.feedburner.com/AyudaWordPress" />

De nuevo, sustituye mi RSS de Feedburner por el tuyo y ya está.

3. Función que sustituya los RSS por los de Feedburner

Para mi la opción más elegante, a la par de resultona. Y es que, además de que no consume recursos, con este método tampoco tienes que acordarte si cambias de tema.

Aquí echaremos mano de nuestro archivo functions.php, o si lo prefieres de tu plugin de Funciones, opción con la que no tendrías que acordarte si cambias de tema, y simplemente le añadimos estas líneas:

// Redirigir feeds a Feedburner en el tema
add_action('template_redirect', 'redirige_rss_feedburner');
function redirige_rss_feedburner() {
        if ( is_feed() && !preg_match('/feedburner|feedvalidator/i', $_SERVER['HTTP_USER_AGENT'])){
                header('Location: http://feeds.feedburner.com/AyudaWordPress');
                header('HTTP/1.1 302 Temporary Redirect');
        }
}

De nuevo pones la URL de tu Feedburner, guardas los cambios y a correr.

¿Cual te parece mejor opción y, sobre todo, por qué?

Take Our Poll