Como mostrar u ocultar contenido según el usuario. WordPress

Programacion Web, Wordpress 1 Comentario »

En ocasiones queremos que determinado texto solo sea visible para algunos usuarios en WordPress. Para ello hay que identificar el nivel otorgado al usuario y hacer una simple sentencia "if".

En el caso de wordpress existen los siguientes niveles posibles:

  • Administrator: Level 10
  • Editor: Level 7
  • Author: Level 4
  • Contributor: Level 2
  • Subscriber: Level 0

Para entenderlo un poco mejor vamos a poner un ejemplo. Imagínate que tengo una función que me muestra el número de visitas que ha recibido un post pero solo quiero que esté visible para el Administrador del blog que tiene el nivel 10 según la tabla anterior.

La sentencia sería:

PHP:
  1. <?php if (current_user_can('level_10')) : ?>
  2. <span class="post-visitas"><?php if(function_exists('the_views')) { the_views(); } ?></span>
  3. <?php endif; ?>

De esta forma la función "the_views" solo se mostrará si el usuario que está leyendo el blog está logado y tiene el rol de administrador.

Esta sentencia puede ser introducida en cualquiera de los archivos de WordPress como pueden ser index.php, single.php, etc...

Actualizar WordPress 2.5 a 2.6

Wordpress No hay Comentarios »

Bueno, tenia algunos plugins que ya me estaban pidiendo actualización y que solo por la pereza que me daba los estaba dejando pero como hace 3 dias apareció la nueva versión de wordpress, la 2.6. He dedicado la tarde a apañar algunas cosas que tenia pendientes en la administración de este blog.

Esta vez a la nueva versión la han denominado "Tyner" por el pianista de jazz McCoy Tyner, viene con muchas novedades, las mas importantes son:

  1. Instalación de plugins desde el mismo panel de administración
  2. Soporte SSL de Administración para permitir que el administrador visite el sitio a través de http o https con la opción de forzar el acceso por https
  3. Filtrado de posts por autor y mes en el panel de administración
  4. Vista previa de themes como ya está en WordPress.com, para poder ver como quedará tu blog antes de activarlo
  5. Otra novedad bastante interesante la posibilidad de cacherar archivos estáticos con Google Gears para mejorar la carga del panel de administración
  6. Nubes de Tags con edición de estilos y colores
  7. Mecanismo XMLRPC para listar y borrar medios de un modo sencillo y eficaz
  8. Mejoras en la edición de imágenes para controlar los medios a incluir en los posts
  9. Búsqueda por categorías unidas como ya se puede hacer por tags y categorías, pero a mano
  10. Inhabilitar la publicación remota para mejorar la seguridad
  11. Comprobación preliminar de seguridad a la hora de la instalación para buscar scripts maliciosos que pudieran afectar a WordPress
  12. Cambiar la característica de publicación mediante la API XML-RPC
  13. jQuery 1.2.6 y jQuery UI 1.5 con mejoras importantes
  14. Conteo de palabras en el editor de posts y páginas
  15. Borrado masivo, edición, activación, etc de plugins
  16. Mejoras en la identificación de títulos de páginas
  17. Paginado jerárquico en las paginas de administración de Páginas y Categorías
  18. Posibilidad de colocar tu carpeta ‘wp-content’ en cualquier sitio del servidor, incluso fuera de la carpeta pública
  19. Posibilidad de poner el fichero ‘wp-config.php’ fuera de la carpeta de instalación de WordPress
  20. Galerías con soporte de arrastrar y soltar
  21. Mejoras en los formatos de feeds
  22. Avatares por defecto personalizables
  23. Mejoras en menu-header.php
  24. TinyMCE 3.1.0.1 con montones de ajustes
  25. Nuevo filtro para inhabilitar la caja de email en la página del perfil
  26. Incluir ficheros que no sean plugins en los plugins manipulando la base de datos

Si queréis ver alguno de estos efectos funcionando WordPress ha puesto el siguiente vídeo en el que se pueden ver algunas de las nuevas funcionalidades en el panel de control. Alguna de ellas ya hacia bastante falta. Lee el resto de esta entrada »

WhyDoWork. Plugin para insertar código Adsense en WordPress

Wordpress No hay Comentarios »

WhyDoWork Adsense WordPress es un plugin que permite insertar anuncios de AdSense en tu blog sin necesidad de modificar la plantilla. Además te permite configurarlo para mostrar diferentes anuncios de AdSense para los artículos mas antiguos de X días (x es el número de días que quieras).

Por ejemplo, te permite insertar un 468 × 60 anuncios en la parte inferior de un nuevo artículo, y una vez que el artículo tiene 7 días de vida tendrá un cuadro más agresivo 336 × 280 anuncios mezclado con el texto desde el comienzo de ese artículo.

De esta manera, tus lectores no serán molestados por los anuncios, mientras que los visitantes que vienen provenientes de los motores de búsqueda o de otras fuentes, verán una versión mas agresiva del anuncio.

Otra característica es la capacidad de tener los artículos sin los anuncios insertados en ellos, muy útil.

Podéis verlo en este momento en esta web ya que he empezado a utilizarlo poco antes de la escritura de este post.

Descargar Plugin: WhyDoWork desde la página del autor.

Cachear y comprimir WordPress con WP-Super Cache

Wordpress 3 Comentarios »

WP Super Caché es un plugin para cachear WordPress. Genera ficheros html que se sirven directamente de Apache sin procesamiento pesado de scripts PHP. Al utilizar este plugin que acelerará tu blog de WordPress significativamente.

Cuando se instala, los archivos HTML se generan y se sirven sin la invocación de una sola línea de PHP. ¿Como de rápido puede servir su sitio archivos gráficos? Eso es (quizás) lo más rápidamente posible que será capaz de servir a estos archivos del caché. Si tu sitio está luchando para hacer frente con el número alto diario de visitantes este es tu plugin.

El antiguo WP-Cache, aunque es un excelente producto, aún necesita arrancar todo el motor de PHP y acceder a la base de datos para comprobar si la entrada ha cambiado. En cambio, el WP Super Caché crea una estructura de ficheros y directorios estática en wp-content/cache/supercache réplica exacta de la que las URLs originales.

El plugin WP Super Cache sólo sirve páginas generadas por él a usuarios que no hayan dejado ningún comentario (y por ello no tengan cookie del sitio, claro) y a los que no estén registrados. A los demás no les puede servir páginas suyas porque es posible que tengan que ver páginas con los nuevos comentarios que han dejado o ver páginas que han editado. A estos usuarios (que serán una minoría) se les sirve una página cacheada por WP-Cache, ya que el plugin WP Super Cache mantiene al mismo tiempo su propia caché y la del WP-Cache, de forma que tiene ambos mecanismos en funcionamiento en todo momento. Pero no sólo eso; el WP Super Caché puede añadir compresión a las páginas cacheadas por la parte de WP-Cache y a las cacheadas por él, obteniendo la funcionalidad que necesitábamos.

Así, con unas sencillas RewriteRule que crea el WP Super Cache en el fichero .htaccess del directorio raíz del blog, y que comprueban las cookies del usuario y si la página está cacheada, el Apache nos sirve dichas páginas sin acceder ni a un fichero PHP y sin ni un sólo acceso a la base de datos.

Las reglas son las siguientes, y comprobamos que se verifica que no haya cookies, que la petición no sea una query, y se mira si se puede enviar la versión comprimida o no (HTTP:Accept-Encoding):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{HTTP_COOKIE} !^.*comment_author_.*$
RewriteCond %{HTTP_COOKIE} !^.*wordpressuser.*$
RewriteCond %{HTTP_COOKIE} !^.*wp-postpass_.*$
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1index.html.gz -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1index.html.gz [L]

RewriteCond %{QUERY_STRING} !.*s=.*
RewriteCond %{HTTP_COOKIE} !^.*comment_author_.*$
RewriteCond %{HTTP_COOKIE} !^.*wordpressuser.*$
RewriteCond %{HTTP_COOKIE} !^.*wp-postpass_.*$
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1index.html -f
RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1index.html [L]
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

</IfModule>
# END WordPress

Sin embargo, estas reglas, que son las que crea el WP Super Cache 0.5.1, no funcionan si el wordpress no está instalado en el directorio raíz del blog, como se puede verificar fácilmente estudiándolas un poco. Es decir, si tienes un blog en http://www.example.com/ y el WordPress instalado ahí también, funcionan, pero si tienes ambas cosas en http://www.example.com/blog/, no funcionará, así como si la URL del blog es distinta de la de WordPress, como pasaba también con el 1 Blog Cacher.

No olvidemos comprimir los ficheros CSS y los Javascript

Con el WP Super Cache resolvemos el problema de “cachear + comprimir + minimizar los accesos a la base de datos” para todo el contenido generado por WordPress. Sin embargo, aún tenemos algunos ficheros estáticos de uso muy frecuente (y estoy pensando en concreto en los ficheros CSS y Javascript de la página) que podemos querer comprimir y cachear aprovechando lo que hemos aprendido del mod_cache y del mod_deflate.

Para ello, una configuración como la siguiente en la que indicamos que los ficheros CSS y JS han de comprimirse (los HTML no para no entrar en conflicto con las páginas generadas por el WP-Cache modificado) y especificamos los ficheros concretos (también podríamos especificar directorios) que queremos, así mismo, almacenar en la caché:

AddOutputFilterByType DEFLATE text/css application/x-javascript
CacheEnable disk /directorio1/directorio2/style.css
CacheEnable disk /directorio1/directorio2/print.css
CacheEnable disk /directorio3/directorio4/scripts.js

Descargar plugin de la Web Original de WP-Super Cache

WP Theme & Icons originales por N.Design Studio.
Aviso Legal Entradas RSS Comentarios RSS Acceder