Ver la página de inicio en un modo de vista previa

7

¿Hay alguna forma de ver tu página de inicio en un modo de vista previa, de modo que pueda ver cómo se verán mis publicaciones en la página de inicio antes de publicarlas (es decir, para asegurarme de que la imagen mostrada se vea bien, etc.)?

    
pregunta Matt Whetton 16.01.2014 - 10:27

1 respuesta

6

Creo que puedes configurar tu publicación en private para verla de forma privada en la página de inicio.

  

Una vez que cambie la visibilidad a privado, el estado de la publicación o de la página   Cambios a "Publicada privadamente" como se muestra. Publicaciones privadas son   Publicado automáticamente pero no visible para nadie, excepto aquellos con el   niveles de permiso apropiados (Editor o Administrador).

Consulte aquí .

Aquí hay una idea para ver draft de publicaciones en el sitio:

Vamos a reutilizar el parámetro preview para agregar las publicaciones draft a la vista de la página actual, por ejemplo:

- example.com/?preview=true
- example.com/2014/01/?preview=true

Luego, modificamos todas las consultas de frontend, para usuarios registrados, con:

add_filter( 'posts_where', function( $where ){
   if( ! is_admin() 
       && is_user_logged_in() 
       && 'true' === get_query_var( 'preview' ) 
       && ! is_singular() )
   {
        global $wpdb;
        $from = sprintf( "%s.post_status = 'publish'", $wpdb->posts ) ;
        if( current_user_can( 'edit_others_posts' ) )
        {
            // add drafts from all users:
            $to = sprintf( "%s.post_status IN ( 'publish', 'draft' ) ", $wpdb->posts ) ;
        }
        else
        {
            // add drafts from current user:
            $sql = " ( %s.post_status = 'publish' 
                       OR ( %s.post_status = 'draft'  AND %s.post_author = %d ) ) ";
            $to = sprintf( $sql, 
                           $wpdb->posts, 
                           $wpdb->posts, 
                           $wpdb->posts, 
                           get_current_user_id() 
                  );
        }
        $where  = str_ireplace( $from, $to, $where );       
   }
   return $where;
});

pero podríamos usar is_main_query() para restringir las modificaciones a la consulta principal.

ps: esto podría necesitar algunas pruebas o ajustes ... pero tienes la idea ;-)

    
respondido por el birgire 16.01.2014 - 13:06

Lea otras preguntas en las etiquetas