Funciones interesantes para WordPress

WordPress es un gestor de contenidos muy flexible que prácticamente permite hacer cualquier cosa. Y entre ellas está la posibilidad de aplicar algunas funciones para retocar el sistema.

WordPress Child Themes y WPO

Desde hace unas cuantas versiones de WordPress que está disponible la opción de los Child Themes. La creación de este sistema tiene como base hacer un @import del CSS padre.

Plugin para WordPress y Varnish

Acabo de parir… han sido 9 meses largos (en serio, he estado, ahora que lo pienso, 9 meses desarrollando cosas sobre este tema) pero han valido la pena porque hoy he subido al repositorio oficial mi primer plugin: WordPress Varnish as a Service. Aunque en la página del repositorio no hay mucha información, he preparado una página interna sobre este mismo tema en el que hay algo más de información, como por ejemplo algunas funcionalidades, los idiomas a los que está traducido… Hace unas semanas ya os comenté que estábamos preparando un servicio de Varnish para WordPress como Servicio que básicamente multiplica enormemente la velocidad de carga de las páginas (el WPO y el SEO, vamos). Y como contra prestación ha salido un bonito plugin. Aunque ha habido … Leer más

Varnish para WordPress como Servicio

¿Tu WordPress va lento? ¿Te gustaría que volase? Pues esta es la idea que he estado planteando desde hace unos días… Hace cosa de un año que comencé a montar blogs con WordPress bajo Varnish. Al principio iba bien pero configurarlo y mantener las máquinas es algo complejo, a parte de que no todo el mundo puede permitirse montar y mantenerlo. Así que, tras muchas vueltas, pruebas, testeo de plugins y demás, he conseguido poder montar un sistema que, de forma sencilla, permita cachear y mantener un WordPress con Varnish. El sistema es sencillo… sólo hay que subir 2 plugins: uno de ellos es para purgar (limpiar) la caché de Varnish cuando alguien publica algo, comenta, edita… así, cuando el blog cambie, se regenera la caché y los … Leer más

Tras la WordCamp Sevilla 2011

Como ya sabéis muchos de vosotros este fin de semana he estado en la WordCamp Sevilla 2011. Las WordCamp son los eventos oficiales de WordPress en los que suele ir gente de Automattic, la empresa que hay detrás de este grandísimo software, además de usuarios y desarrolladores de la plataforma. Durante el fin de semana estuve dando un par de charlas, una sobre Google Panda y WordPress, en la que comenté como reducir la cantidad de URL que genera WordPress perdiendo el mínimo tráfico posible, y sabiendo que en la nueva versión el propio sistema, a sabiendas de esto, va a incorporar mejoras de forma automática para que no afecte negativamente. La otra charla, de un nivel técnico más elevado, trató sobre WordPress Performance Optimization, comentando dos temas … Leer más

WordPressformance Optimization #WordCampSev 2011

Ayer ya di la charla de Google Panda y WordPress y hoy ha tocado la charla de WordPress Performance Optimization, que he reducido a WordPressformance. La charla de hoy ha tratado de cómo montar una infraestructura más organizada en sitio que necesitan alto rendimiento, ya que está claro que montar un WordPress en la misma máquina el Apache, SQL y PHP pues como que no es lo mejor… Así que nada, aquí os dejo la presentación en PDF para los que queráis descargarla.

WordPress y Google Panda #WordCampSev 2011

Entre hoy y mañana se está celebrando el WordCamp Sevilla 2011 y voy a dar 2 charlas… la primera de ellas se llama WordPress y Google Panda y, como ya podéis supones habla de la relación que hay entre el nuevo algoritmo Google Panda y WordPress (.org). Os dejo la presentación descargable en PDF. Como comentario a destacar (que he de analizar en una versión de pruebas que tengo) es que me han comentado que WordPress 3.3 incluirá grandes mejoras en cuanto a qué indexa y que no indexan los buscadores en determinadas URL de WordPress. Habrá que verlo y en base a eso analizar hacia dónde va el SEO de WordPress.

WordCamp Sevilla 2011

Hace más de 6 años que utilizo WordPress… concretamente desde la versión 1.5 cuando lancé OJObuscador allá por mediados de junio de 2005. Había utilizado muchos CMS, pero desde aquel momento todos los proyectos que he tenido que lanzar (sin contar los de desarrollo propio) han sido lanzados con WordPress. Ahora que WordCamp vuelve a España he creído conveniente devolver un par de trucos a la comunidad… además ambos van relacionado con temas que me gustan, como son el WPO y el SEO, por lo que todo perfecto. Los próximos 8 y 9 de Octubre estaré por Sevilla. Las charlas son las siguientes: WordPress y Google Panda: La idea es comentar algunas cosas que WordPress no acaba de hacer correctamente y que a Google no les gusta, pero … Leer más

El plugin SEO perfecto para WordPress

Hace un tiempo que comenté que algún día publicaría cómo debería ser el plugin perfecto de SEO para WordPress. Que conste que esto es una carta a los Reyes Magos, y que personalmente limitaría al máximo las opciones que puedan configurar los usuarios, dando una serie de opciones predeterminadas para que realmente la aplicación sea óptima. Comencemos. El primer punto vamos a enfocarlo a los títulos. Por norma general los títulos de un sitio se pueden configurar de forma bastante automática siguiendo las bases de cómo busca la gente. Aunque hay 2 opciones: un sitio organizado principalmente por páginas o por entradas. Si el sitio está organizado por entradas (en modo blog, vaya) la estructura de URL debería ser: Página Principal: Nombre del blog (sin palabras clave ni … Leer más

WordPress Performance Análisis

WordPress es un gran CMS, no me cansaré de decirlo, ya que lo uso desde 2006 y la verdad es que pocos problemas me ha dado; pero cada vez más las configuraciones e instalaciones se complican, los sitios web crecen de tráfico y la configuración básica ya no es suficiente. En las últimas semanas he hablado de algunos desastres con WordPress, de la creación de estáticos para WordPress, algunos trucos con el .htaccess… y hoy quiero comentar un par de plugins que creo que son bastante interesantes de cara a tener en cuenta pequeñas mejoras de rendimiento. El primero más que para analizar el rendimiento es para aumentarlo. Hoy en día por defecto WordPress viene configurado para que se cree un histórico de todas las entradas, actualizaciones y … Leer más

Funciones interesantes para WordPress (3)

Y una nueva entrega de la serie de entradas sobre funciones interesantes para WordPress y más funciones interesantes para WordPress. Eliminar palabras de menos de 3 letras en la URL al crearse: function remove_short_words($slug) { if (!is_admin()) return $slug; $slug = explode(‘-‘, $slug); foreach ($slug as $k => $word) { if (strlen($word) < 3) { unset($slug[$k]); } } return implode('-', $slug); } add_filter('sanitize_title', 'remove_short_words'); Mostrar un bloque con la URL corta de cada entrada en su panel: function shortlink_add_column($cols) { $cols['shortlink'] = 'Enlace Corto'; return $cols; } function shortlink_add_value($column_name, $post_id) { if ('shortlink' == $column_name) { echo '<input type="text" value="'.wp_get_shortlink($post_id).'" onclick="this.focus(); this.select();">'; } } function shortlink_sortable_column($columns) { $columns['shortlink'] = 'Enlace Corto'; return $columns; } add_filter('manage_edit-post_sortable_columns', 'shortlink_sortable_column'); add_filter('manage_posts_columns', 'shortlink_add_column'); add_action('manage_posts_custom_column', 'shortlink_add_value', 10, 2); Los usuarios (no admin) sólo pueden ... Leer más

Funciones interesantes para WordPress (2)

Prosigo con la serie de entradas sobre funciones interesantes para WordPress. Añadir ancho y alto en el listado de contenidos multimedia: function tamany_column($cols) { $cols[«dimensions»] = «Dim (Wid × Hei)»; return $cols; } function tamany_value($column_name, $id) { $meta = wp_get_attachment_metadata($id); if(isset($meta[‘width’])) echo $meta[‘width’].’ × ‘.$meta[‘height’]; } add_filter(‘manage_media_columns’, ‘tamany_column’); add_action(‘manage_media_custom_column’, ‘tamany_value’, 10, 2); Limitar la subida de ficheros a GIF, JPG y PNG: function restrict_mime($mimes) { $mimes = array( ‘gif’ => ‘image/gif’, ‘jpg|jpeg|jpe’ => ‘image/jpeg’, ‘png’ => ‘image/png’ ); return $mimes; } add_filter(‘upload_mimes’, ‘restrict_mime’); Habilitar Tinymce HTML sólo para algunos usuarios: function disable_html_editor_wps() { global $current_user; get_currentuserinfo(); $users = array(«admin», «juan», «maria»); if(!in_array($current_user->user_login, $users)) { echo »; } } add_filter(‘wp_default_editor’, create_function(», ‘return «tinymce»;’)); add_action(‘admin_head’, ‘disable_html_editor_wps’); Crea un meta-description con el texto del contenido: function create_meta_description() { global $post; if(!is_single()) … Leer más

Funciones interesantes para WordPress (1)

Voy a comenzar una serie de entradas que tratan sobre WordPress. Como ya sabréis, WordPress permite tener en la carpeta del «theme» un fichero llamado functions.php en el que se pueden incluir una serie de funciones que se pueden ejecutar en cualquier lugar del diseño, o pueden ser funciones que sobre escriban, eliminen o amplíen algunas de las funciones que ya vienen en el sistema. No es muy recomendable pasarse poniendo funcione (ya que aumentarán las necesidades de recursos de la máquina) pero sí que es interesante tener en cuenta algunas de estas: Añadir tu propio CSS en wp_nav_menu: function custom_nav_class($classes, $item) { $classes[] = «custom-class»; return $classes; } add_filter(‘nav_menu_css_class’ , ‘custom_nav_class’ , 10 , 2); Eliminar la versión de WordPress del RSS/Atom: function remove_feed_generator() { return »; … Leer más

Desastres varios con WordPress

Creo que en las últimas semanas no me había encontrado con tan elevada cantidad de WordPress tan mal configurados. Y es que aunque WordPress es un gran sistema de gestión de contenidos (principalmente para blogs) en cuanto montas algo con cara y ojos y tienes más de 1.000 visitas al día el rendimiento del gestor de contenidos que viene por defecto (y con la configuración por defecto) es una castaña. Estos últimos 3 meses me ha tocado documentar una base de infraestructura ideal para montar el software y, poco a poco, ir mejorándolo hasta llegar a lo que pensamos que puede ser una estructura ideal. No es fácil, ya lo digo, pero sin duda permite una escalabilidad que no habíamos podido tener. Lo bueno de WordPress es que … Leer más

PagedNoindex WordPress Plugin

Uno de los problemas que me encuentro con el All in One SEO Pack es que no permite que las paginaciones no se indexen, algo que puede generar ciertos problemas y que, personalmente no me gusta que haga. Para solventar esto he creado un pequeño plugin para WordPress que detecta si es una pagina paginada y añade un meta-robots-noindex de forma que esa página no aparecerá en los motores de búsqueda como Bing o Google. Tan sólo hay que subirlo y activarlo, ya que no requiere de ningún tipo de configuración ni nada parecido. Puedes descargar el plugin desde aquí: PagedNoindex WordPress Plugin (versión 1.0 – 20110624).

Social Share Button WordPress Plugin

En muchas ocasiones he querido tener mi propio sistema para compartir en Twitter, Google PlusOne y Facebook, pero ninguna herramienta me daba exactamente lo que yo quería… así que me he montado este plugin para WordPress llamado Social Share Button. Este sistema básicamente añade el botón de compartir en twitter (con el contador) el sistema de votación propio de Google (el Google +1 o Google PlusOne) y finalmente el botón de compartir en Facebook a través del famoso Me Gusta. Este plugin incorpora un fichero de configuración que hay que editar antes de subirlo en el que se indican algunos elementos: $social_lugar: Indicando 0 o 1 podemos hacer que el bloque aparezca encima o debajo del contenido. $social_ancho: Es el ancho (en píxeles) de la columna donde está … Leer más

OpenGraphProtocol WordPress Plugin

El Open Graph Protocol es un sistema de meta-etiquetas que permite, de forma abierta, que algunos robots como por ejemplo los de Facebook) puedan recopilar información de tu página de una forma sencilla y así mostrar la información relevante en sus resultados. El ejemplo más claro sería el de compartir una URL en Facebook, que cuando lo haces te aparece un título, descripción e imagen (o te deja elegir). Este plugin para WordPress básicamente lo que hace es crear esas meta-etiquetas de forma automática y tampoco es que permita ningún tipo de configuración. Simplemente lo subes, lo activas y hará su trabajo. El sistema activa los datos de página y URL para todo el dominio, el tipo, la imagen (si es una imagen destacada, tomará esa, sino intentará … Leer más

Estáticos para WordPress

La verdad es que WordPress es un gran CMS y, sobre todo, muy extensible y configurable. En esta ocasión me gustaría enlazar una entrada que publiqué hace ya un tiempo en el que hablaba de los dominios sin cookies con la posibilidad de configurar WordPress para tener las imágenes separadas del dominio principal. El objetivo de este sistema básicamente es separar lo que es la propia web de los contenidos estáticos que se pueden separar. En principio se podrían separar hasta los diseños (JS, CSS…) pero suele ser algo más complejo. Para empezar la idea es separar los contenidos que subimos a través del panel y que suelen estar en la carpeta /wp-content/uploads/. Para comenzar lo que debemos tener es un dominio configurado para estáticos. En mi caso … Leer más

Un par de trucos para WordPress con .htaccess

Muchas veces queremos hacer cosas en WordPress y buscamos plugins que pueden sobrecargar el sistema de forma absurda, pudiendo hacer mejoras gracias a unas pocas líneas del .htaccess. Reducir spam en comentarios En muchas ocasiones los robots de spam están tan mal hechos que no incluyen ningún tipo de referrer, algo que los usuarios por norma general sí que permiten… así que: RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*dominio.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] Evitar enlaces multimedia externos (hotlinking) Gracias a esto puedes impedir que los sitios que te enlacen y usen tus imágenes reciban un bonito mensaje… RewriteCond %{HTTP_REFERER} !^http://(.+\.)?dominio\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*\.(jpe?g|gif|png)$ nohotlinking.png [L]

oEmbed, WordPress 2.9 y el editor de imágenes

Como muchos ya sabréis soy aficionado a tener una versión «alpha» de WordPress en mi blog personal, y de esa forma ir probando en tiempo real cómo es de estable el sistema antes de hacer las actualizaciones pertinentes en el resto de sitios de los que soy responsable… Y ahora que no creo que tarde mucho en salir esta nueva versión, me gustaría hacer un repaso de algunas características interesantes. Antes de nada, he de decir que en muchos casos (no sé si es el autoguardado o qué) cuando voy a guardar un borrador o similar se pierde como el ID o algo y acaba fallando, total, que hay que volver a la lista y reabrir esa entrada (habiendo perdido el título y tags, normalmente). El primero de … Leer más

Lo que hace un índice

Como ayer comenté, a veces las decisiones de actualizar software y tal quizá no sean las mejores, aunque lo flipante es que una gilipollez consiga tirarte una máquina y llevar locos a los técnicos de un ISP. Estos días ando ayudando a migrar un proyecto que estaba antes en HTML con PHP que llamaba y tal, y que ya era ingestionable, y decidimos pasarlo a SQL, recuperando del HTML la información importante y como CMS decidimos utilizar WordPress. El problema nos lo hemos encontrado al tener más de 21.000 posts y una base de datos que ocupa más de 250 megas. La cuestión es que no tenía sentido que se cayera cada dos por tres el servidor, el Apache, el mySQL y todo en reacción en cadena… Al … Leer más

Los cambios de hora y WordPress

La última vez que hubo un cambio de hora, me crucé unos cuantos correos con anieto2k para ver si había una solución a algo que, en mi caso, supone dedicarle un rato y acordarse de muchas contraseñas: cambiar el huso horario a WordPress. Y es que aunque los servidores cambia de hora de forma automática, el que no lo hace es WordPress. Creo recordar que hace un tiempo ya incluyó 2 campos de hora en su sistema, uno GMT y el otro con el horario establecido… el problema es que WordPress no te cambia la hora, lo que significa que hay que cambiarla «a mano». Hace un rato he tenido que entrar en cada uno de los que gestiono (directa o indirectamente) y que superan los 15, e … Leer más

Sobre Feedburner y el peligro del contenido duplicado

Desde hace ya bastante tiempo que no utilizo Feedburner por varias razones, una de ellas porque a mi me gusta dar los contenidos completos en mis feeds. Sí, parece una contrariedad, pero es así. Hace unos días me encontré que un compañero me preguntaba si tenía alguna idea de porqué su blog no aparecía en los resultados de búsqueda de Google. Lo primero que hice fue mirar si había alguna cosa rara en el blog o si estaba penalizado en los resultados de búsqueda… el resultado fue negativo… el blog estaba bien y no tenía nada raro, y estaba bien indexado en los buscadores con artículos de hacía pocas horas… Al final elegí el título de un artículo antiguo y lo puse a buscar… nada… ningún resultado coincidía … Leer más

Posicionamiento y CMS

Ayer estuve hablando un poco del SEO de Joomla! en el JoomlaDay en Madrid. Hace unas semanas me pidieron que le diera un repaso a la instalación por defecto de este gestor y me propuse hacerlo para ver qué tal funcionaba y de paso compararlo con WordPress, al que estoy más habituado tras haber usado hace muchos años atrás PHP-Nuke. El resultado fue bastante curioso ya que me extrañó que Joomla! fuera «tan malo» (entre comillas) y que no venga optimizado. Y ya no me refiero tanto a SEO como a que el núcleo del sistema devuelta tablas y elementos poco intuitivos. No voy a entrar mucho más en esto, pero me asaltaron ciertas dudas como una que creo muy interesante: ¿por qué los CMS no vienen ya … Leer más

Ya se ha lanzado WordPress 2.5

Sin duda algo esperado que va acompañado de un cambio de diseño en la web de WordPress más al estilo del nuevo panel de gestión. La descarga ya está disponible, después de 185 días (6 meses y 3 días para ser más exactos). Os recomiendo darle una ojeadilla si vais a actualizar y, casi mejor, que os esperéis unos días antes de actualizar… por si acaso…

Instalando WordPress 2.5-RC1

Finalmente me he decidido, tras muchas pruebas y cosas, a instalar en mi blog la nueva versión de WordPress… suelo hacer pruebas siempre primero con mi blog antes, sobretodo, de pasar todos los blogs de OJO ya que suelo tener todos los plugins configurados y así veo en producción cosas que se me han podido escapar en la versión de prueba que funcionaban bien. Además, he aprovechado para actualizar todos los plugins que aún siguen activos, lo que me está llevando algunos dolores de cabeza… (esto me recuerda a que he de hacer una lista de los plugins que uso, que creo que serán interesantes para muchos). Ahora lo que me queda es hacer pruebas con una de las grandes incorporaciones de WordPress, que es Gravatar… hace ya … Leer más

Probando WordPress 2.5-beta1

Hace cosa de un mes estuve enseñándoos lo que parecía esperarse del WordPress 2.4 que no iba a salir… y hoy me ha dado por descargarme lo que ya parece ser la beta 1 de WordPress 2.5… Pues entre las cosas nuevas que he ido viendo en el panel me he encontrado estas: – definir el tamaño de los thumbnails – mostrar avatares (supongo que en los comentarios y tal vez en los posts, porque el template por defecto aún no parece incorporarlo…) – lanzamiento de la zona widgets (que ya había hace un mes) que permite modificar el template de forma sencilla – gestor de estiquetas – añadir media muy mejorado, en AJAX, puedes subir cosas bastante más rápido… – además de permitir mucha más y mejor … Leer más

Probando WordPress 2.4

Sí, aunque ya se ha comentado que no existirá la versión 2.4 de WordPress, yo estoy probándola… ¿cómo? muy sencillo, me he bajado la generada automática de hoy mismo y veo algunos detalles. Para comenzar, los cambios se han realizado principalmente en el panel de gestión. Al fin y al cabo, un CMS ha de tener mejoras internas (velocidad, memoria…) y cambios en la interfaz de manejo. Como detalles curiosos, han implementado un sistema para avisar si la contraseña de los usuarios es débil o fuerte; en cambio hay cosas peores al menos lo que yo veo) como las nuevas páginas para añadir y editar artículos o páginas. Me ha gustado que cuando editas un artículo aparezca bajo el título la URL «que va a quedar», me gusta … Leer más

Que no se indexen las paginaciones de WordPress

Hace unas semanas descubrí una función interesante en WordPress que me ha permitido hacer una mejora en todos los diseños de los blogs que gestiono… La función en sí es is_paged() y permite detectar esas páginas del blog en las que en la URL aparece el /page/número… Estas páginas son las que se usan para navegar por la web, y aunque es interesante que los buscadores las sigan, no interesa que sean indexadas ya que no aportan valor a los resultados de búsqueda… básicamente porque todo lo que aparece en esas páginas al final aparece en una URL dedicada a las entradas de un artículo concreto. Es por esto que si a esto le sumamos las páginas de los resultados de búsqueda interna del blog, podríamos añadir al … Leer más