Añadir clase a la imagen destacada de WordPress según el tamaño

Hace bastante que no escribía, sobre todo por falta de tiempo, pero quería escribir sobre este pequeño truco de WordPress. Cuando añadimos una imagen destacada en un post de WordPress nos podemos encontrar con que la imagen ocupa todo el ancho (lo más normal) o que no ocupa tanto, con lo que nos encontramos que la imagen queda muy sola y el diseño queda feo.

Para solucionar esto, deberemos añadir un filtro, comprobar el tamaño de la imagen y el del ancho del contenido y en el caso de que creamos que es conveniente (por ejemplo la mitad del ancho del contenido) añadir una clase a la imagen:

function mi_post_thumbnail_html($html) {
  // Se suele recomendar definir la variable $content_width para ocasiones como esta
  global $content_width;
  preg_match('#width="([^"]+)"#', $html, $s);
  if (isset($s[1]) && $s[1] < $content_width/2) {
    preg_match('#class="([^"]+)"#', $html, $c);
    if (isset($c[1]) && strpos($c[1], "right") === FALSE) {
      return str_replace('class="'.$c[1].'"', 'class="'.$c[1].' right"', $html);
    }
  }
  return $html;
}
add_filter('post_thumbnail_html', 'mi_post_thumbnail_html');

Importar RSS en WordPress sin usar un plugin

Buen tutorial que explica cómo importar los contenidos de un RSS en nuestro blog sin tener que usar un plugin, que sinceramente, hace bastante busqué un plugin que lo hiciera y no encontré nada que me llegara a gustar.
El tutorial es bastante completo, dividido en tres partes: importar usando WP de forma sencilla y de forma más avanzada, para lo cual utiliza las funciones de WP que hacen uso de Magpie. O utilizando SimplePie, para lo cual no es necesario WP.
Import and Display RSS Feeds in WordPress
Vía / Script & Style

Plugin WordPress para usar Sphinx

Interesante plugin que nos permite usar Sphinx en nuestro WordPress, aunque siendo realistas, dudo mucho que el 5% de los blogs que usen WordPress puedan necesitar el potencial de Sphinx.

Ofrece todas las características propias de Sphinx (entre ellas su rapidez) y además añade las siguientes:

  • Permite buscar en páginas, posts y comentarios
  • Permite excluir posts, comentaios o páginas de las búsquedas
  • Muestra los comentarios en la página de resultados
  • Busca en páginas no protegidas con contraseña
  • Busca unicamente en comentarios aprobados
  • Modifica el title de la página de resultados según la búsqueda
  • Muestra el top de palabras buscadas
  • Muestra las ultimas palabras buscadas

WordPress Sphinx Plugin

Crear un plugin para WordPress con su propia tabla

Interesante artículo en el que nos explican cómo crear un plugin de wordpress usando su propia tabla, algo que no suele necesitarse porque para almacenar datos propios se usan las “options”, pero en algún momento podemos necesitarlo.

Nos explica paso a paso qué hay que hacer:

  • Declarar la función y las variables globales que se necesitan
  • Darle un nombre a nuestra tabla y usar el prefijo de WP
  • Comprobar que la tabla no existe y si no, crearla
  • Añadir la funcionalidad a WordPress
  • Añadir datos a la nueva tabla

Create a Plugin With Its Own Custom Database Table

Convertir WordPress en un CMS

Aunque como usuario me gusta WordPress (aunque cada vez un poquito menos), como desarrollador no me gusta demasiado (por no decir casi nada), pero no quita que su puesto se lo tiene bien ganado y que a veces es imposible no tener que usarlo.
Si además de las funcionalidades de WP, necesitas algo más que te puede aportar un CMS genérico, te puede venir bien este tutorial que explica en pocos pasos cómo convertir WordPress en un CMS.
Para ello el autor mueve el blog a la carpeta /blog y en la home de la página crea una página principal en la que se mostrará un portfolio y los resúmenes de sus diferentes trabajos (teniendo cada trabajo una página individual).
Los cambios incluyen la creación de archivos nuevos para el theme, que recoge los resúmenes de cada apartado del portfolio, los cuales son páginas estáticas que cuelgan de la página principal del portfolio.
Seguro que existe algun plugin que te lo permite hacer, pero la explicación es muy buena y la idea la podemos aprovechar para otras necesidades.
WordPress as CMS tutorial
Vía / dzone

Laboratorio: Feel the Comments plugin para WordPress

Ayer se lió una buena por lo de Mobuzz. Estuve leyendo todo lo que puso Javier Martín en su blog y los comentarios de la gente, que suelen ser muy interesantes. Había opiniones en contra, a favor y de todo tipo, y me hubiera gustado poder distinguir de que tipo era cada comentario de forma rápida.

Por eso se me ocurrió hacer un plugin para WordPress en el que el comentarista pudiera indicar su estado de ánimo: en general o sobre el post en particular, según permita el administrador del blog.

feel_the_comments1.png

Desde la administración de WP, se podrá indicar que estados de ánimo puede indicar el usuario. Para ello escribirá pares tipo:texto en una caja de texto, por ejemplo:

:¿Cómo te sientes?
acuerdo:Estoy totalmente de acuerdo
desacuerdo:Va a ser que no
encanta:¡Me encanta!
pordios:¡¡Por Dios!!

Como se puede ver el primer par no tiene el tipo de “sentimiento”, esto es así para poder dar la oportunidad a ser neutral en tu comentario. Hay que tener en cuenta que la opción por defecto es la primera.

Una vez que ya hemos instalado el plugin y lo hemos activado, tan solo tendremos que modificar la plantilla de comentarios para añadir el combo y para añadir un CSS que nos permita identificar cada estado de ánimo (el nombre del estilo corresponde al tipo de la lista anterior).

Para añadir el combo solo tendremos que añadir el siguiente código allá donde queramos, lo más lógico es antes del submit:

<?php if (function_exists('feel_the_comments_draw_select')) feel_the_comments_draw_select(); ?>

Para añadir la clase tan solo será necesario incluir una llamada PHP, pero con la salvedad de que hay que hacerla después de recuperar el ID del comentario. Esto es debido a dos cosas: WP es un asco y yo no tenía ganas de buscar una solución mejor. WP permite añadir hooks que se ejecuten en los filtros y las acciones, a parte de que el código de WP es una chapuza un lío, las funcionalidades que ofrece no son todas las que yo necesitaba, o simplemente no encontraba cómo hacerlo. Un ejemplo del código sería el siguiente:

<li  id="comment-<?php comment_ID() ?>" class="<?php echo feel_the_comments_get_class(); ?>">

Como resultado tendremos un combo en el formulario de comentarios que nos permite elegir el tipo de sentimiento que queremos expresar:

feel_the_comments2.png

Y también unos comentarios con diferentes estilos según el sentimiento general que quieran expresar. Yo no le he dado muchas vueltas y he añadido el color negro para indicar el “¡Por Dios!”, el azul para “Estoy de acuerdo”, el verde para “Me encanta” y el gris para “No estoy de acuerdo”, el resto irían sin estilo propio.

feel_the_comments3.png

Como he dicho antes, no es un plugin perfecto ya que WP me desespera y no tenía demasiadas ganas de ser perfeccionista, así que si alguien quiere mejorarlo, por mi perfecto.

Descarga: Feel the Comments

Hack para mejorar la velocidad de WP-Cache

Interesante hack que permite darle más velocidad al plugin de WP-Cache, para lo cual enviará más datos en la cabecera para que el caché sea más rápido: Content-Length y Cache-Control.
Es curioso que para el primero lo que hace el hack es descomentar líneas del código original que por lo visto estaban comentadas porque daban error con algunas instalaciones de PHP.
Hack WP-Cache for Huge Speed Increase

Lista de funciones para las plantillas de WordPress

Alguna que otra vez he tenido que hacer una plantilla para WordPress (o un plugin) y la verdad es que la documentación que ofrece WP no me gusta demasiado.

Esta lista de funciones para plantillas nos puede ayudar a localizar lo que necesitamos para nuestro desarrollo, ya que agrupa las funciones en:

  • Autor
  • Categorías
  • Comentarios
  • Fecha y tiempo
  • Generales
  • Enlaces
  • Permalinks
  • Entradas
  • Etiquetas

WordPress Template Tags Reference Guide

Guía para el debug de aplicaciones PHP

La gente de PHP Freaks nos ofrece una completa guía para iniciarse en el debug de aplicaciones PHP.
Empieza indicándonos cómo permitir los logs de error, ya sea mediante código o mediante la modificación del php.ini, en caso de que sean errores sintáxicos.
Después nos explica algunos de los errores más comunes que solemos comenter y los diferentes mensajes de error que nos llegan (fatal errors, warnings y notices), el modo de reportar los diferentes errores y algunos ejemplos.
Se trata de una guía básica, pero para quienes empiecen en esto, les va a venir muy bien. Recordad que un debug es importante y un gestor de erorres debe estar en cada aplicación.

Debugging: A Beginner’s guide

Ejemplos de código para WP

Yo soy de la opinión, quizás no muy compartida, de que el código de WordPress es una mie…. Siempre que quiero hacer algo en una plantilla o un plugin me desespero, por eso, a la gente que le pase como a mí, estos casos de ejemplos de código le puede venir muy bien:

Asignar una imagen al ID de un post

Esto puede parecer raro, pero si quieres que cada post pueda tener una imagen asociada, este truco explica cómo hacerlo.

$image = "$id.gif";
if(is_readable("./images/$image")) {
echo 'alt tag';
} else {
echo 'alt tag';
}

Separar los trackbacks de los comentarios

Para ello hay que modificar la plantilla de comentarios y duplicar la estructura de los comentarios, añadiendo justo despues del foreach de los comentarios:

<?php foreach ($comments as $comment) : ?>

lo siguiente:

$comment_type = get_comment_type();
if($comment_type == ‘comment’) {

Mostrar el nombre de la categoría

Muestra el nombre de la categoría allí donde la mostremos.

$cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name;

Posts más recientes

Una lista con los tres posts más recientes:

get_archives(’postbypost’, 3);

5 WordPress PHP Code Snippets