Contenido

¿Problemas con los previews?

11 mar

+ 2

Bueno, hace ya tiempo que Cristian de VidaBlog nos deleito con este hack, que nos permitía eliminar la molesta sección de preview de nuestro fichero post.php, con su consecuente disminución de tiempo de carga de la página ya que se trataba de un iframe y carga la página entera en su interior.

Hoy desde Diario a Bordo presentan Kill Preview Plugin, que se supone que hace exactamente lo mismo sin necesidad de tener que tocar código. Una muy buena opción.

Pero yo os propongo un hack con el que podremos ver como quedan nuestros previews, como si estuvieran puestos en nuestra página principal. Este hack no tiene nada que ver con que se vea el preview en el menu Admin, recomiendo quitarlo que es un coñazo.

La idea del hack es crear previewPosts, que solo podrán ser vistos por los usuarios administradores, editores y serán completamente invisibles para los usuarios que visiten la web sin ningún privilegio. Mediante el uso de un sistema parecido al que usamos en los asides de Boja vamos a modificar el fichero index.php para conseguir nuestro proposito.

Pasos para implementar el hack.

  • Deberemos crear una categoría en nuestro WordPress a la que podemos llamar por ejemplo preview y guardamos el ID de esta categoría
  • Hacemos una copia de seguridad del fichero index.php
  • Abrimos el fichero index.php y añadimos el siguiente código en las primeras líneas de código.
<?php 
global $userdata; 
      get_currentuserinfo(); 
?>  

De esta forma obtenemos los datos del usuario actual en WordPress, y con esos datos podemos controlar que usuario es el que está viendo en estos momentos la página.

  • Añadimos al fichero la siguiente línea justo debajo del comienzo del loop en el while (have_posts()) : the_post();
<?php if (!in_category(IDcat) || ($userdata->user_level > 0 ))  : ?>  

Debería quedar algo asi.

 
  

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>     <?php if (!in_category(IDcat) || ($userdata->user_level > 0 ))  : ?>

Hay que tener en cuenta que el IDcat es el ID de la categoría que hemos creado y el 0 es valor del usuario que ya no está permitido a ver la categoría. Una modificación sería compararlo con 10 que sería el valor que se le asigna a los administradores.

Ahora nos queda cerrar la comprobación de la siguiente forma, justo antes del cierre del loop.

 
<?php endif; ?> 

Quedando algo asi.

 
<?php endif; ?> 
  <?php endwhile; else: ?> 

De esta forma ya tenemos montado un sistema con que podremos montar noticias y verlas únicamente nosotros, y ver que tal quedan antes de postearlas.

Tambien podemos, para dejar bien montado el sistema, hacer que no aparezca esta categoría en nuestro sidebar.

wp_list_cats( '.... 
 
  • Le añadimos en los argumentos la opción de exclude con el valor del ID de nuestra nueva categoría. En mi caso queda así.
<?php wp_list_cats( 'hierarchical=1&exclude=34' ); ?> 

Modo de uso 

Para usarlo unicamente tendremos que escribir la noticia y despues seleccionar como categoría de la noticia la nueva (preview) que hemos creado, y entonces le damos a Públicar, de esa forma ya la tendremos en portada y podremos ver que tal queda.

Con esto ya tenemos montado el sistema completo, espero haber sido todo lo claro que quería serlo.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.