Variables en URL con WordPress provocan un 404 not found

Estoy creando un template en WordPress que requiere pasarle unas variables vía URL para mostrar un contenido u otro. Lo que quiero hacer es que según estas variables se me muestren las entradas de una categoría u otra dependiendo de una variable, y a su vez otra variable que me indique el año.

Pues bien, para estas dos variables elegí los nombres cat y year. Al acceder a la página principal no había ningún problema, pero al acceder a una url así:

 

La página mostrada ya no es el contenido de http://dominio.com/pagina/ sino que me devuelve la página 404 Not found (contenido no encontrado).

Después de mucho rebuscar, por lo visto no se pueden utilizar según que variables como parámetros en la URL. El listado de las variables que no pueden utilizarse está en esta url (por lo visto da igual que ponga Public o Private, no se pueden utilizar ninguna de ellas…):

https://codex.wordpress.org/WordPress_Query_Vars

Para que no de el error simplemente hay que cambiar el parámetro year por otro nombre, con lo que la url quedaría algo así:

Slider en cabecera para tema twentyeleven en WordPress

Muchas veces he utilizado como tema base para crear un template para WordPress, el tema twentyeleven, que viene por defecto en la instalación de la última versión.

Siempre había querido hacer un slider con las imágenes que se muestran en la cabecera y que son configurables desde Apariencia / Cabecera. El caso es que el otro día tuve que hacerlo para un cliente y, antes de ponerme a hacerlo desde cero, busqué un poco por si alguien lo había hecho ya, no es cuestión de ir reinventando la rueda porque sí.

El caso es que encontré un plugin que añade una opción más a la ventana de configuración de la cabecera para que esta se muestre como un slider, utilizando para ello el plugin para jQuery Nivo Slider (qué casualidad, porque yo iba a poner ese).

El caso es que después de instalar el plugin y de realizar un par de ajustes ya me aparecían las imágenes de la cabecera pasando de una a otra.

Ahora solo me hacía falta configurar mis imágenes para que salieran estas en lugar de las que vienen por defecto en twentyeleven.

Abrimos el archivo functions.php y al final del todo lo que haremos será:

  1. Deshabilitar las imágenes de la cabecera que vienen por defecto y…
  2. Habilitar nuestras imágenes habiendo subido previamente las nuevas al servidor via ftp

Para esto lo que habrá que hacer, como ya he dicho, es escribir el siguiente código al final de functions.php:

Con esto lo que hacemos es borrar las antiguas imágenes y poner cinco nuevas.

Mucha gente utiliza los child themes, o temas basados en otros, para crear modificaciones de estos. Yo no lo hago pero más que nada porque no me he puesto nunca. Simplemente me gusta enredarme con el código y crear un nuevo tema a partir del original, aunque igual lo de hacer un child theme sea mejor opción.

Espero que le sirva a alguien 😀

Act: Suelo dejar para el final el tema de hacerlo todo compatible a versiones antiguas de IE. En este caso IE7 no carga las imágenes. Por lo visto el utilizar la opción auto insert del plugin no le gusta mucho al dichoso IE y no carga bien. La solución es cambiar el código de carga de las imágenes directamente en el archivo header.php. Donde pone esto:

Por esta línea:

Con esto ya cargará bien las imágenes en IE7 y nos podremos olvidar del tema…

+ info: http://wordpress.org/extend/plugins/header-image-slider/
http://wpti.ps/functions/replace-remove-header-image-twenty-eleven-theme/

Launch Effect por BarrelNY

Estaba esperando a escribir este post a que la gente de BarrelNY sacara la nueva versión de Launch Effect, y ya está aquí, la versión 1.0.3.

Launch Effect es un tema para WordPress que convierte una instalación nueva en una valiosa herramienta para marketing. Se trata de crear un anuncio viral de un evento próximo, una apertura de tienda, un concierto, lo que sea, pero con un diseño y un potencial extremos.

Solo hay que seguir los pasos de instalación indicados y ya podremos empezar a configurar la landing, imagen de fondo con supersized, textos, maquetación, etc… Una vez tenemos la landing a nuestro gusto empieza el tema viral. Corremos una primera voz como podamos.

Cada persona que introduzca el email en la lista recibirá una url para poder compartir con los amigos, cosa que puede hacerse mediante los botones adjuntos para publicar en redes sociales. Cuantos más amigos utilicen esa url más puntos tendrá, haciendo así que se pueda premiar al usuario que más corra la voz.

Después podremos ver todos los resultados y descargar un CSV con todas las direcciones de correo.

Una pasada de tema, tanto por la parte de código como por la parte visual, que va a dar mucho que hablar y le van a salir competidores por todos lados porque la idea es simplemente genial, aunque ser pionero tiene un grado.

Yo sin duda pagaría por un tema como este pero sin pensarlo un segundo.

PS: La página de la aplicación una maravilla en cuanto a diseño y programación. Inspiration First Class.

+info:
http://launcheffectapp.com/
Explicación de Launch Effect por la gente de Barrel

Enlaces personalizados a ventana nueva en WordPress

Este es un tip tonto, pero que me ha llevado unos 10 minutos de búsqueda por internet. Por si le ahorro tiempo a alguien ahí va.

Resulta que si haces un menú personalizado desde la sección Apariencia dentro del backend de WordPress, si a este menú le añades enlaces personalizados estos van a ir siempre a la misma ventana, nunca van a abrirse en una ventana nueva.

Si queremos que los enlaces se abran en una nueva ventana hay que activar la opción de decirle al enlace a donde quieres ir. Para esto solo hay que ir a la pestañita Opciones de pantalla que está arriba a la derecha y allí marcar el checkbox Destino del enlace.

En el mismo sitio podremos activar las opciones para poner:

  • Clases CSS
  • Relación con el enlace (XFN)
  • Descripción

Marcando estos checkbox ya podremos cambiar en el destino del enlace al editar el enlace personalizado creado.

Enlaces en wordpress multiidioma con WPML

Para la última página que estoy haciendo me pidieron que esta fuese multiidioma. Al estar haciéndola con WordPress instalé el plugin WPML para crear todo el contenido en diferentes idiomas.

Me surgió un problema entonces, y explico la situación. Desde ciertas páginas se requiere acceder a otras páginas que están en el idioma adecuado. En este caso estos accesos debían hacerse desde el contenido del template de cada página y no desde un menú. Por ejemplo, si tengo una página inicio y desde esta quiero ir a una página hija, contacto,  de una llamada nosotros:

Inicio -> Nosotros / Contacto

En mi caso el menú solo iba a a tener un nivel con lo que a Contacto solo se podría acceder añadiendo un link en el template. Pero no podía poner el texto tal cual ya que la traducción iba a hacerse posteriormente y no se en que idioma. Además el problema no está en el propio texto del enlace, ya que se podría haber solucionado con una llamada a la función para localización de temas:

_e(‘Contacto’, ‘domain’);

El problema es que quería que tanto el texto del enlace como la dirección fuese adecuada al idioma. Para esto WPML tiene una función genial que cambia el enlace de acuerdo al ID del elemento que estás traduciendo y al idioma que vayas a utilizar.

icl_link_to_element(ID, type, text, arguments, anchor);

Donde :

  • ID es el identificador de la página/entrada/etiqueta/categoria a donde quieres ir.
  • Type es el tipo que podrá ser post, page, tag o category
  • Text es el texto que quieres para el enlace, pudiendo usar aqui la función de localización __()
  • Arguments, argumentos opcionales pasados por GET
  • Anchor, no tiene mucho sentido pero puedes poner que en vez de el enlace en cuestión utilice otro a capón

En fin, problema resuelto, WPML se encarga (si tiene la traducción de la página) de traducir los enlaces al idioma adecuado.

+ info: http://wpml.org/documentation/support/creating-multilingual-wordpress-themes/hard-coded-theme-links/

Contact Form 7

Para el nuevo portfolio que me estoy creando decidí utilizar WordPress como CMS. Estuve dudando unas horas por utilizar Indexhibit y no descarto usarlo alguna vez en mi vida pero me decidí por WordPress porque quería meterle mano en algún momento a la creación de temas.

Para la creación del portfolio, como no, tenía que tener una sección de contacto. Nunca me había parado a pensar como hacer un formulario en WordPress, y de hecho siempre creí que lo más sencillo sería poner el código en una página con el editor en formato HTML.

Pero estaba equivocado.

La forma más simple de hacer un formulario en WordPress es utilizar el plugin Contact Form 7. Es tan simple que asusta, solo hay que poner los campos en su apartado de administración y mediante ajax se encarga de enviar el formulario a la dirección de correo electrónico indicada.

También es posible utilizar Akismet para la prevención de spam con solo poner un tag en el campo deseado (akismet:author por ejemplo)

Veremos a ver si luego, por usar el mismo sistema que en el blog, tengo problemas por tener dos instalaciones de WP, pero hasta que eso pase (si es que pasa) le daremos un voto de confianza a WP y a mi mismo.

Unos cuantos enlaces:

Página principal Contact Form 7
FAQ CF7
Sintaxis de las etiquetas CF7
Filtro anti-spam con Akismet