Categoría: Wordpress

Consejos para mantener tu blog de WordPress más seguro

Logo de WordPress con cascoLa semana pasada se conoció la noticia de que muchos sitios que utilizan WordPress estaban siendo víctimas de un ataque masivo para robar contraseñas de administrador utilizando el método de la fuerza bruta, provechándose de los administradores que dejan como usuario “admin” y de que el formulario de login de WordPress no dispone, de por sí, de método alguno para prevenir este tipo de ataques (ir probando combinaciones hasta que alguna funciona).

Llevo muchos años utilizando WordPress y me parece interesante compartir algunas de las medidas de seguridad que considero básicas para mantener una instalación segura. No entraré en detalle de ninguno de los temas, pero si alguien quiere que me esplaye un poco más o que escriba un post sobre ello, lo haré.

(más…)

Leer más

Error: Redirección de WordPress al intentar acceder a wp-admin

Ayer me encontré con un error en el blog que no me permitía entrar al panel de administración (wp-admin) porque siempre me redirigía a la página de Login (wp-login) y desde ahí a la página principal. Me fijé que en la barra de direcciones aparecía algo similar a “/wp-login.php?redirect_to=” y buscando en Google no encontré nada, así que me tuve que buscar la vida.

La solución que encontré fue bastante sencilla. Simplemente editando el archivo wp-config.php y desactivando la caché. Cambiando:

define('WP_CACHE', true); //Added by WP-Cache Manager

Por:

define('WP_CACHE', false); //Added by WP-Cache Manager

Como me imaginaba, se trataba de algún tipo de problema causado por la caché (WordPress Super Cache) a las cookies, aunque no sé cual ni tampoco la razón.

Espero que te resulte útil si también te encuentras este problema.

Leer más

No estaba de parranda, estaba a otras cosas

He estado más de un mes sin publicar un solo post en el blog, pero no porque me haya aburrido de él ni mucho menos. La razón es principalmente que he andado muy liado con el proyecto fin de carrera y con el trabajo en Adama Web (más con el proyecto, siendo sinceros, que quita mucho tiempo estar pensando qué hacer, cómo hacerlo y ver la fecha límite tan cerca).

Aunque no haya escrito nada en el blog durante tanto tiempo, los que me leéis en Twitter sabréis que he estado trabajando en un editor de blogs para Mac, que aunque ya es totalmente funcional y tiene lo necesario como para ser una base para futuras ampliaciones, todavía no creo que esté todo lo “presentable” posible para el grueso de los mortales (es decir, App Store). Se pueden hacer muchas cosas con él: gestión de posts, categorías, campos personalizados, sincronización, etc. Sin embargo, he prescindido de algunas características como la inclusión de imágenes en posts porque todavía no he encontrado una manera de hacerlo que me guste. Lo demás son detalles, pero también me gustaría darle una vuelta de tuerca a la interfaz, que ahora mismo tiene la apariencia del Finder.

Entre mis objetivos está el de liberar el proyecto como código abierto (todavía no he decidido bajo qué licencia) cuando tenga todo el código limpito y bien documentado, que me molesta bastante ver proyectos de software libre que no los entiende ni el que los programó.

Si todo va bien, espero presentar dentro de un par de semanas 😉

Leer más

Otro caso de inyección de enlaces maliciosos en WordPress

Spammer en WordPressMe parece que es necesario poner sobre aviso a los usuarios de WordPress sobre otro caso de inyección de enlaces sin consentimiento del dueño del blog. En esta ocasión se trata del plugin WP Status Notifier, un plugin que sirve para enviar un aviso al administrador del blog cuando un artículo se encuentra pendiente de revisión.

Este plugin añade automáticamente en el blogroll un enlace malicioso con el texto “WordPress Themes” dirigido a la página de sus autores ( wordpresssupplies.com ), de una manera bastante parecida a otro sujeto que lo hizo con anterioridad y que denuncié en este blog y con el objetivo de hacer Spam/Black SEO. Por lo visto, mucha más gente se ha visto afectada por problemas de este estilo con los themes y los plugins de esa página ( aqui y aquí ) .

Para eliminar el código que añade automáticamente el enlace, hay que eliminar las líneas 35 a 38 del archivo status-notifier.php, aunque también podéis optar a eliminar el plugin y buscar una alternativa como el Peter’s Collaboration emails que realiza la misma función.

Leer más

Internet Interesante del (17 de Enero al 19 de Enero)

Esta es una nueva lista de algunas utilidades interesantes de internet que he ido agregando a mi cuenta de Delicio.us entre el 17 de Enero y el 19 de Enero. Espero que os parezcan interesantes y os resulten provechosos para ampliar vuestros conocimientos e igualmente para descubrir nuevos blogs y sitios web.

  • WordPress Database Description: Descripción detallada de la estructura de la base de datos de WordPress.
  • Configuring a Cron Task: Alguna información sobre la programación de tareas en UNIX mediante CRON.
  • E-Mail Icon Generator: Aplicación que sirve para convertir una dirección de email en imagen. Útil para prevenir el Spam.
  • intoDNS: Una herramienta que permite comprobar el estado de las DNS de un dominio.

Asimismo, hay muchas otras utilidades interesantes que han ido apareciendo en el blog en el tag Utilidades.

Leer más

Internet Interesante del 13 de Enero

Esta es una lista de algunas utilidades interesantes de internet que he ido agregando a mi cuenta de Delicio.us hasta el 13 de Enero. Espero que os parezcan interesantes y os resulten provechosos para ampliar vuestros conocimientos e igualmente para descubrir nuevos blogs y sitios web.

  • Reducir uso de CPU y memoria del servidor: Información interesante sobre cómo reducir el consumo de memoria en un servidor Apache con PHP instalado y algunas modificaciones en el .htaccess para evitar los bots hijos de puta.
  • How to Upgrade PHP: Información sobre como actualizar PHP desde WHM y de manera manual. (En inglés)
  • Apuntes sobre servidores: php.ini: Información interesante sobre la configuración del php.ini en servidores web.
  • The Ultimate WordPress 2.8 Optimization Guide: MUCHA información para optimizar al máximo un servidor web sobre el que funcione WordPress. En muchos casos se necesitan conocimientos avanzados para realizar estas optimizaciones. (En inglés)
  • Como evitar un DoS con Apache: Porque saber las maneras de prevenir un ataque DoS pueden resultar vitales cuando se dispone de un servidor dedicado y se está aprendiendo.

Asimismo, habrá muchas otras utilidades interesantes que han sido guardadas en el tag Utilidades de este blog.

Leer más

Todo sobre las miniaturas (thumbnails) de WordPress 2.9

Logo de WordPress grisWordPress 2.9 ha traído consigo una nueva característica que muchos reclamábamos desde hace bastante tiempo y que lo convierte en un gestor de contenidos mucho más potente de lo que ya era: la inclusión de thumbnails o miniaturas individuales para cada post. No he encontrado prácticamente información en castellano sobre este tema y el Codex de WordPress tampoco proporciona suficiente información, por lo que voy a intentar dejar lo más claro posible cómo se activan y la manera más fácil de utilizar los thumbnails según lo que he leído en este blog y mi propia experiencia.

1. Activación

Si deseamos asignar thumbnails a los artículos, primero deberemos hacer que nuestro theme/plantilla sea compatible con esta funcionalidad. Para ello, añadiremos al archivo “functions.php” que se encuentra en la carpeta de nuestra plantilla el soporte para ello.

if ( function_exists( 'add_theme_support' ) )
add_theme_support( 'post-thumbnails' );

Al incluir este código, se añadirá automáticamente un campo personalizado a todos nuestros posts que será “the_post_thumbnail” y las opciones correspondientes para gestionarlo desde el panel de creación/edición de artículo.

2. Añadir una miniatura a un post

Wordpress ThumbnailTras haber activado la función correctamente como se indica en el paso 1, podremos añadir las thumbnails a los posts a través de una opción en la barra lateral del panel de creación de posts o desde el menú de subidas de imágenes haciendo clic en “Set Thumbnail”. Resulta totalmente trivial la manera de hacerlo y no creo que genere ningún tipo de duda.

3. Mostrar la miniatura en tu plantilla

Para mostrar la miniatura en tu plantilla, deberás editarla manualmente y llamar a la siguiente función donde quiera que se muestre la imagen:

<?php the_post_thumbnail(); ?>

Aunque de esta manera ya estaría totalmente funcional, seguramente haya mucha gente que prefiera adaptarla lo máximo posible a su theme. Esto se puede hacer añadiendo una serie de parámetros a la función, como el tamaño, la clase ( class de CSS), el atributo alt o el title.

3. 1. Gestionando el tamaño de la miniatura

Por defecto, el tamaño de la miniatura será el que tengamos seleccionado para las miniaturas de WordPress (‘thumbnail’) aunque se pueden elegir los otros dos tamaños o incluso personalizarlos según nuestros gustos o necesidades:
Tamaño pequeño:

<?php the_post_thumbnail('thumbanail'); ?>

Tamaño medio:

<?php the_post_thumbnail('medium'); ?>

Tamaño grande:

<?php the_post_thumbnail('large'); ?>

Tamaño personalizado (ancho, alto):

<?php the_post_thumbnail(array( 200,200 )) ?>

Si definimos el tamaño de la miniatura de esta manera, cogerá el tamaño normal de la imagen y lo reducirá, no cogerá el tamaño ‘thumbnail’.

3.2. Gestionando la clase de la miniatura

La clase de la miniatura servirá para añadirle un estilo predefinido en la hoja de estilos del theme. Por defecto es .wp-post-image, pero podremos elegir la que queramos definiendo nuestro propio estilo:

<?php the_post_thumbnail('medium', array('class' => 'imagen_post')); ?>

3.3. Gestionando los atributos alt y title

De la misma manera que hemos visto anteriormente, también se pueden modificar a nuestro gusto los atributos ‘alt’ y ‘title’ de la miniatura, pudiendo ponerlo lo que queramos:

<?php the_post_thumbnail('medium', array('class' => 'alignleft', 'alt' => 'alt_que_queramos', 'title' => 'titulo_que_queramos')); ?>

4. Incluyendo el código completo y a prueba de fallos

Cuando ya tengamos decidido cómo queremos mostrar la thumbnail en nuestro post, sólo nos quedará incluir el código en nuestra plantilla. Sin embargo, deberemos tener en cuenta que los artículos antiguos no tendrán asginada una miniatura, por lo que los deberemos tratar de una manera diferente al resto mediante una comprobación ‘has_post_thumbnail’ (¿Tiene el post miniatura?). En caso afirmativo se mostrará la miniatura, pero en caso negativo se mostrará la miniatura que hayamos utilizado hasta entonces o sino una imagen genérica.

<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) {
	the_post_thumbnail();
} else {
	$postimage = get_post_meta($post->ID, 'post-image', true);
	if ($postimage) {
		echo '<img src="'.$postimage.'" alt="" />';
	}else{ echo '<img src="http://tupagina.com/thumbail_generica.png" alt="Thumbnail genérica" />'; }
} ?>

Como podéis comprobar, esta nueva característica de WordPress puede resultar muy útil para los que tenemos themes con formato de revista o queremos mostrar los artículos de diferente manera según el lugar del blog en el que nos encontremos. Espero que os haya resultado útil.

Leer más

Botón de compartir en Facebook

He estado peleándome un poco con la API de Facebook para conseguir dejar el botón de compartir un post tal y como yo quería, con una pequeña ventana que se abre al hacer clic, no una nueva pestaña. Estuve intentando hacerlo directamente con la API de Facebook a través del elemento fb:share-button; sin embargo lo que ofrece es tan limitado que no me terminó de convencer, así que decidí tirar de un clásico: Javascript + HTML para hacer el botón simple y a mi gusto de la siguiente manera.

<a onclick=t=document.title;window.open('http://www.facebook.com/sharer.php?u=<?php the_permalink() ?>&t='+encodeURIComponent(t), 'sharer', 'toolbar=0, status=0, width=626, height=436'); return false;" target="_blank" href="">Compartir</a>

Este código, lo que hace es abrir una pequeña ventana de las dimensiones especificadas por los parámetros width y height, enviando a Facebook el título del post obtenido por la función en PHP de WordPress “the_permalink()” y el título del documento. Por último, el texto del enlace en este caso es “Compartir”, aunque se podría sustituir, por ejemplo, por una imagen.

Leer más