03abr
15

wptouch-iphone-theme

El otro día recomendaba el plugin WPTouch iPhone Theme como uno de los mejores que existen para mostrar una versión móvil de nuestro sitio a los dispositivos mas empleados: iPod Touch, iPhone, Android. Ahora bien, este plugin tiene una incompatibilidad con otro: WP Supercache. Y cuando Miguel me preguntó por este problema caí en que no había comentado nunca la solución.

Y es que WP Supercache puentea algunas características de WordPress en cuanto a la gestión de cache, y es por eso que necesita configuración adicional.

Si usas WP Cache o la cache interna de WordPress no hay problema, solo tienes que añadir “iPhone” como ‘user agent’ que puede “ver” el sitio en directo, pero WP Supercache sirve HTML estático y no lo verá la mayoría de las veces. Si usas WP Supercache en el modo “half-on”, que es como usar WP Cache, puedes añadirle el nuevo ‘user agent‘ en las opciones del plugin y funcionará, pero si usas el ‘full-mode‘ no.

La solución pasa por modificar las reglas que WP Supercache añade al fichero ‘.htaccess‘, incorporando la excepción que queremos. Por ejemplo, para que los lectores que visiten con un iPhone nuestro blog vean la versión en directo y no la “cacheada” tendríamos que añadir esta línea:

RewriteCond %{HTTP_USER_AGENT} !^.+iPhone

Con lo que la sección de Supercache en ‘.htaccess’ quedaría así:

# BEGIN WPSuperCache

RewriteEngine On
RewriteBase /
AddDefaultCharset UTF-8
RewriteCond %{REQUEST_URI} !^.*[^/]$
RewriteCond %{REQUEST_URI} !^.*//.*$
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP_USER_AGENT} !^.+iPhone
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L]

RewriteCond %{REQUEST_URI} !^.*[^/]$
RewriteCond %{REQUEST_URI} !^.*//.*$
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$
RewriteCond %{HTTP_USER_AGENT} !^.+iPhone
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L]

# END WPSuperCache

También puedes añadir las excepciones para iPod o Android si lo deseas o lo crees conveniente:

RewriteCond %{HTTP_USER_AGENT} !^.+iPod
RewriteCond %{HTTP_USER_AGENT} !^.+Android

¡Que usted lo cachee e iPhonee bien!

Para saber más:

  • Pingback: Bitacoras.com

  • http://www.miguelgaton.es Miguel Angel Gaton

    Gracias!. A mi me sirvió de mucha ayuda.

    Un saludo,

    • http://fernandotellado.com/ Fernando Tellado

      Me alegro, porque tampoco me confirmaste si se te solucionó ;)

  • http://www.neovuelos.com vuelos baratos

    yo lo habia desactivado por esa razon, pero ahora que das el dato, pues lo volvere a activar para su utilizacion y ver si funciona todo correctamente

  • nicolas

    que tal quería saber como sería la regla para el htaccess para los celulares, tipo:

    RewriteCond %{HTTP_USER_AGENT} !^.+nokia

  • http://vidaenlondres.com Urko

    Estaba usando el plugin de wptouch y la verdad que es una gozada. Sin embargo, creo que da problemas al intentar guardar el icono en el iphone o es incompatible con algún otro plugin :s Lo de la incompatibilidad lo digo porque probé a guardarlo ayer y me iba perfecto, sin embargo, esta mañana he recibido notificaciones de 404 de la imagen (y está en el servidor, y con permisos 644) ¿Alguna posible solución? Se que puede resultar una tontería el problema, pero siento curiosidad. La página en cuestión es http://vidaenlondres.com (no te lo pongo con código html por aquello de que pienses que sea spam)

    Gracias de antebrazo

  • http://vidaenlondres.com Urko

    Vaya, por lo visto la url la pone sola :p

  • Dante

    Recien empeze a crear un blog en WordPress, y gracias a este blog he podido hacer maravillas.
    Solo que una duda me ha quedado,referente al post:
    ¿Que plugin es mejor, WP-PDA o WPTouch ?, ya que anteriormente recomiendas el primero, y ahora este.
    Si podrias recomendarme cual, podria utilizar, aunque no es muy necesario.

    • http://fernandotellado.com/ Fernando Tellado

      Al final estoy utilizando WPtouch, me parece mucho más logrado en todos los sentidos. Pero vaya, pruébalos y decide tu mismo ;)

  • Dante

    Muchas gracias por contestar rapidamente Fernando, los probare, pero no se de que manera sabre si se visualizan bien, ya que no tengo alguno de los dispositivos mencionados.
    Gracias de nuevo, esta es la razon por la cual visito AyudaWordPress.

  • http://mercadder.com mercadder

    ¿Con desactivar la carga de plugins en el WPTouch no es suficiente?

  • http://twitter.com/mercadder Mercadder

    ¿Como hiciste esta conexion con twitter? está muy chula!

  • Pedro Adolfo Querebalú Godoy

    Tengo un problema tengo un blog con subdominio.midominio.com pero cuando entro al movil no me carga la web y me manda a http://www.subdominio.midominio.com alguien tiene alguna idea, gracias.

  • Matias7_8

    hola lo probe y lo configure y anda muy bien. Una consulta el blog tengo contador de counters99, la pregunta es si hay alguna forma de agregarlo al plugins para que las visitas se registren. Excelente blog, espero que me puedas ayudar saludos

    • http://fernandotellado.com Fernando

      Pues no lo he probado pero el plugin se sirve de un theme, si editas el tema que viene con el plugin podrás agregar lo que quieras