Tags para los Custom Post Types

nube de tags

Ya existe mucha documentación sobre cómo crear taxonomías y cómo usarlas en los custom post types, pero… ¿cómo usar las taxonomías que usa WordPress por defecto? A esta pregunta no existe mucha documentación, y menos en español. Por esto, he decidido volver a escribir en TodoWP y hacer un pequeño manual de cómo usar específicamente tags en un tipo de post personalizado.

Los ingredientes para lograrlo son:

  1. La definición o declaración del post type
  2. La conexión del tipo de post con la taxonomía
  3. El cambio en el query por defecto

Lo primero es tener el custom post type:

register_post_type('alojamiento',
array(
'labels' => array(
'name' => 'Alojamientos',
'singular_name' => 'Alojamiento'
),
'capability_type' => 'post',
'public' => true,
'supports' => array('title','editor'),
'taxonomies' => array('post_tag')
)
);

Este es un ejemplo básico de cómo se registra un post type, lo importante en este ejemplo es la linea donde se registran las posibles taxonomías para este tipo.

'taxonomies' => array('post_tag')

Nota: en esta parte no es necesario poner todas las taxonomías que se usarían. Luego se pueden crear taxonomías personalizadas para usarlas con este tipo de post.

tags

Hasta el momento aun no ponemos usarla, ¿por qué? Porque el editor no nos mostrará la caja que permite agregar las etiquetas. Para esto nuestro segundo ingrediente.


register_taxonomy_for_object_type('post_tag', 'alojamiento');

Esta última linea se coloca también en la acción init, al igual que el register_post_type. Hasta el momento todo funciona perfecto, podemos crear custom post y asignarles etiquetas. Incluso si agregamos un widget con la nube de etiquetas aparecerán las que hayamos creado y nos indicará cuántos posts tienen esa etiqueta.

Pero aún hay un problema: si en esa nube de etiquetas entramos a ver el listado de posts no veremos los de tipo especial, incluso aparecerán los posts normales, pero no los especiales.

Para esto nuestro tercer ingrediente. El problema radica en que el query que internamente tiene WordPress en el momento de solicitar los contenidos que se pasan a la plantilla para ser mostrados no incluye los post types.


function agregar_los_custom_posts($query)
{
if(is_tag() && empty($query->query_vars['suppress_filters']))
{
$post_types = array('post', 'alojamiento');
$query->set('post_type', $post_types);
return $query;
}
}
add_filter( 'pre_get_posts', 'agregar_los_custom_posts' );

Este filtro logra agregar nuestro o nuestros tipos al query en caso necesario.

Espero que esto les ayude cuando estén en sus desarrollos. Comenten sus resultados.

Calendario editorial para redes de blogs con WordPress

editorial calendar 470x166 Calendario editorial para redes de blogs con WordPress¿Recuerdas si tienes que escribir una nueva entrada en tu blog el próximo lunes? WordPress no hace fácil ver cuando se publican nuestras entradas programadas. Gracias este plugin de WordPress, “editorial calendar” es posible de un vistazo ver como si de una agenda se tratase todas las entradas del mes y cuando se publicarán. Además puedes arrastrar y soltar para mover las entradas, editarlas desde aquí y administrar totalmente tu blog.

Puedes visualizar este vídeo de ejemplo donde su autor nos muestra como funciona el Calendario Editorial para WordPress. Y además también puedes probarlo en vivo a través de la instalación demo de Zack.

Entre las opciones del plugin Editorial Calendar tenemos:

  • Ver todas las entradas y cuando se publicarán.
  • Arrastrar y soltar para cambiar la fecha de publicación.
  • Edición rápida de títulos, contenidos y hora de publicación.
  • Publicar entradas y administrar borradores.
  • Podrás ver de forma fácil el estado de tus estradas.
  • Administra entradas de múltiples autores.

Descargar Plugin Editorial Calendar.

Calendario editorial para redes de blogs con WordPress is a post from: Carrero

Listar nuestros posts más populares en base al número de comentarios

Sin necesidad de utilizar ningún plugin, tenemos a nuestra disposición un buen método para listar, según el número de comentarios, nuestros posts más populares (o los más comentados, según queramos enfocarlo con el título que demos a la lista).

No tendremos más que dirigirnos a la barra lateral (sidebar.php; o pie de página, footer.php) de nuestro tema de WordPress y editarla (recomendamos como siempre a Notepad++ para escribir código) con el siguiente snippet:

Copiar y pegar en nuestro template.

Con este código estamos realizando un sondeo general a nuestra base de datos tomando los 7 posts con más comentarios, preparando sus títulos, URLs y número exacto de comentarios que tengan, y disponiéndolo todo en una lista que deberemos por supuesto “decorar” con CSS a nuestro gusto.

Con este método, quedamos como reyes porque no necesitamos largos cálculos para entender cuál de nuestros posts es más visualizado y reservamos al lector un poco de discusión con todos los comentarios que allí se mostrarán al acabar la lectura principal.

Haz que tus lectores pasen más tiempo leyendo tu blog con YARPP

Una vez que uno de tus artículos ha sido publicado puedes pensar que la historia acaba ahí. No es así. Aún puedes sacarle mucho jugo a esa publicación. Si has hecho bien los deberes del SEO, tu artículo será más fácilmente encontrado por los motores de búsqueda. Esto es importante. Pero también lo es que los usuarios pasen el mayor tiempo posible navegando por tu blog. Una tasa de rebote baja significa que tus usuarios se quedan “enganchados” a tu contenido y pasan el tiempo suficiente navegando por tu página. Esto es crucial si más adelante quieres que alguien pague por poner algo de publicidad en tu blog.

Una forma muy sencilla y efectiva de que los usuarios pasen más tiempo en tu blog es haciendo que lean algún artículo más. Para facilitarte esta labor yo uso el plugin YARPP (Yet Another Related Post Plugin). Claro que yo no soy nadie, también lo usa Matt Mullenweg, el fundador de WordPress. YARPP se encarga de buscar entre aquellos posts tuyos que más se parecen o guardan relación con el artículo que acabas de publicar.

Para configurarlo has de ir a Opciones/Related Posts (YARPP). Un paso necesario para completar la instalación es mover las plantillas del directorio de instalación por defecto del plugin al directorio del tema que estés utilizando. No te preocupes por las rutas, el propio plugin te indicará qué copiar y dónde en una barra amarilla en la parte superior. Una vez completado este paso el plugin habrá quedado correctamente instalado. Ahora sólo falta configurarlo.

De momento el plugin no está traducido, pero las opciones no son demasiado complicadas. Veamos cuáles son:

The Pool. Aquí podemos configurar qué categorías, tags, nivel de protección o con qué antigüedad queremos evitar que salgan posts relacionados. Si tenemos un blog sobre gadgets, puede que no nos interese mostrar entradas de más de 3 meses o queramos que ciertas categorías no se tengan en cuenta.

Opciones de Relación. En este caso podremos dar pesos distintos a los títulos, categorías, tags o al propio cuerpo del post. Además, podremos jugar con el umbral (threshold) sobre el que queremos que nuestros posts se comparen. Cuánto más alto sea este umbral más restrictivo será el filtro y menos número de artículos relacionados se mostrarán. Eso sí, serán mucho más relevantes, por lo que puede ser más probable que los usuarios hagan clic sobre ellos. Esto es algo que cada usuario tendrá que afinar.

Opciones de Relación

Opciones de visualización (Display Options). Aquí podremos configurar el aspecto con el que se muestra nuestra lista de artículos relacionados. Tan importante como qué artículos se muestran es el aspecto de esta lista. Si sabemos CSS podremos crear un estilo que haga irresistible a los lectores hacer clic. También podemos hacer que se publique el extracto de cada artículo relacionado junto con el enlace.

Opciones de visualización

Opciones de visualización RSS. Al igual que en el caso anterior, podremos configurar cómo se ven nuestros artículos relacionados en un lector de noticias RSS.

Opciones de visualización RSS

Si no lo habéis instalado aún, os recomiendo que lo hagáis pronto y ofrezcáis de forma automática a vuestros lectores los artículos relacionados más interesantes.

Cambia de golpe el tamaño de todas las imágenes de tus entradas

Dario Ferrer nos cuenta en su sitio cómo podemos cambiar de golpe el tamaño de todas las imágenes que tenemos en todas las entradas de nuestro sitio.

Tus primeros pasos con WordPress

Con el comienzo de 2010 seguramente muchos querrán comenzar su propio blog, y obviamente han elegido a Wordpress como su CMS (Sistema Administrador de Contenidos). Así que siempre viene bien publicar artículos que puedan ser de especial interés para ellos. ¿Te encuentras dentro de ese grupo novel?

Entonces se abre ante ti un mundo de experiencias emocionantes a medida que vayas creando los artículos que compondrán tu blog. Pero no estás sol@, desde TodoWordPress estamos aquí para guiarte el camino que has emprendido, ayudándote con nuestros conocimientos, y los de toda la comunidad que la componemos.

Seguro que estás deseos@ de escribir tu primer post, ese que es tan especial porque será tu presentación al mundo. Y mientras vas llenando tu blog con nuevos artículos tal vez desees que ese primer post, esté por un tiempo en la primer página, que no se desplace su contenido hasta que tu lo desees. ¿Cómo puedes hacer eso?

Wordpress nos permite escoger si queremos que el artículo quede fijo en la primer página o no. Veamos el modo de activar esa opción:

Poner sticky una página

Al lado de tu espacio para escribir el artículo, notarás que hay un panel que se llama  «Publicar» (he marcado en la imagen «1» el lugar con azul). Este panel es el que nos permite decidir si queremos que nuestro post quede en borrador para una posterior revisión,  o publicarlo directamente si estamos satisfechos con el resultado. Observa bien la imagen, dentro hay una opción llamada «Visibilidad» (está resaltada con marcador amarillo), debes hacer clic en «Editar» (resaltado en color naranja) y se desplegará una lista. Es lo que puedes ver en la imagen «2»

Poner sticky una página

Dentro de la lista mostrada en «Visibilidad»  hallarás una casilla «Mantener esta entrada en la página» (marcada con un óvalo verde), tíldala y ya habrás indicado que ese artículo quede hasta que tu lo decidas (destildando la casilla anteriormente mencionada), en primera página siempre.

Pruébalo con tu artículo de bienvenida, o si ya tienes algunos, con tu post favorito.

Destacar el comentario de el autor de una entrada

Seguramente habéis visto en más de un blog -e incluso, aunque no tiene que ver, foros- que el comentario del autor o autora de la respectiva entrada, si es que deja uno, se destaca con un color distinto, más oscuro que los demás.

Esto se hace fácilmente conociendo un poquitín de CSS y editando archivos de WordPress.

Primero, debéis crear un valor (o estilo) CSS en style.css, la hoja de estilos de vuestro theme, agregando estas líneas dónde sea que no interfiera con otros valores (lo llamo “authcomment”):

.authcomment {
background-color: #B3FFCC !important;
}

Como podréis ver, indica un color en su valor hexadecimal, en este caso, #B3FFCC, que es un verde claro. Se puede cambiar este color, modificando esos dígitos. Podéis consultar la lista de colores aquí.

Luego, debéis modificar una línea en comments.php que reza así

<li class="”<?php">” id=”comment[…]</li>

e ingresar lo siguiente:

<li class="”<?php">user_id)
$oddcomment = “authcomment”;
echo $oddcomment;
?>” id=”comment[…]</li>

Y ¡listo! ya lo tienes

Redireccionar el link del Autor a su blog/web

Como bien sabreis, en cada artículo o post que se escribe en un blog se muestra quién lo escribió, y ese “nombre” es a la vez un enlace a la hemeroteca de ese autor.

Si tenéis un blog con diversos autores, como es este que estais leyendo aquí, tal vez os interese, en vez de enlazar a el archivo del autor, poner un link hacia su blog o página web (como ocurre en TodoWordPress), si es que tiene (la cual se define desde el perfil de cada usuario, en el campo que le corresponde).

¿Cómo hacerlo?

Simplemente buscad en los archivos de vuestro theme la función <?php the_author() ?> y modificadla a <?php the_author_link(); ?>

Facil, ¿eh?

Randomizar el orden de los posts

¿Tienes un blog que no necesita fechas?

Un blog de poesía, cuentos, o… recetas, puede definitivamente tener cualquier post en la página principal, ya que se mantienen a lo largo del tiempo sin quedar obsoletos.

¿Cómo hacéis esto?

Simplemente añadis una línea de código antes del famoso loop de WordPress:

query_posts('orderby=rand');
//Y aquí el loop

Así de simple.

Vía WpRecipes

Diferenciar miniposts en nuestro diseño

Hay ocaciones en el que nuestros post no necesitan de muchas palabras, puede ser un pensamiento, o un pequeño comentario sobre una noticia que no necesita de más eco, para esto tenemos los miniposts y es así que con este mini-tutorial aprenderemos a hacer un diseño diferente en nuestro theme para diferenciar los miniposts.

Para ello descargaremos este archivo cuyo código lo agregaremos a nuestro functions.php y nos permitirá relacionar el minipost con la imagen que queremos que represente. Este paso es opcional.

Luego ubicaremos en nuestro index.php la siguiente línea

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

Justo debajo de esa linea estará todo el código de la apariencia de los posts, lo que debemos de hacer es añadir una condicional para que cambie el diseño cada vez que se publique un minipost.

El nuevo código lucirá de la siguiente manera:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php if ( in_category('10') ) { ?>
<div class="minipost">
<!-- LA IMAGEN FUNCIONARÁ SOLO SI INSTALASTE EL CÓDIGO EN
EL FUNCTIONS.PHP DE LO CONTRARIO BORRALA-->
 <div class="imagen">
 <?php $files = get_children("post_parent=$id&post_type=attachment&post_mime_type=image");
 if($files){ $keys = array_keys($files); $num=$keys[0];$thumb=wp_get_attachment_thumb_url($num);
 print "<img src='$thumb' width='50' height='50' alt='".get_the_title()."' />";
 }else{
 print "<img src='SIN-IMAGEN' width='50' height='50' alt='".get_the_title()."' />";
 }?>
 </div>
<!-- FIN DE IMAGEN-->
 <div class="texto">
 <?php the_excerpt(''); ?>
 </div>
 <div class="clear"></div>
</div>
<div class="espacio"></div>
<?php } else { ?>
<!-- A CONTINUACIÓN COLOCAR EL CÓDIGO DE TUS POSTS NORMALES --->
<!-- IMPORTANTE COLOCAR ANTES DEL ENDWHILE-->
<?php } ?>
<?php endwhile; ?>
<!-- continúa el código de tu index.php -->

Lo que hace este codigo es buscar los posts de la categoria miniposts y cambiarles el estilo, para que funcione debes de escribir el ID de categoría en la siguiente línea del código: if ( in_category(‘ID‘) )

Luego agregamos a nuestra hoja de estilos el siguiente código:

.minipost { padding: 5px 18px 5px 18px; border: 3px solid #f3f3f3; margin: 0 0 28px;}
div.imagen { display: block; float: left; height:50px; width:50px; border: 1px solid #cfcfcf; margin:10px 20px 10px 0;padding:5px;background-color:#fff;}
.texto {font-size: 0.75em; font-family:Tahoma, sans-serif;text-align:justify; color:333;}
.texto{padding:10px 0 10px 0;overflow:hidden}
.texto a{text-decoration: none; font-weight:bold; color:#5d721f;}
.texto a:hover{text-decoration:underline; font-weight:bold; color:#A11111;}
.clear {clear: both; margin: 0; padding: 0;}
.espacio {border-bottom:1px solid #e4e4e4; margin:5px 0 10px 0; display:block;}

Finalmente procederemos a publicar, si es que no lo hemos hecho antes, nuestro minipost, cuyo resultado final – luego de aplicar los cambios en la hoja de estilos – es el siguiente:

Ejemplo de minipost

Espero que te sirva este pequeño tip, si tienes dudas te invito a formular tus preguntas en el foro.