homepage – Ver la página de inicio en modo de vista previa

Pregunta:

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

Respuesta:

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

Una vez que cambia la visibilidad a privada, el estado de la publicación o la página cambia a "Publicada de forma privada" como se muestra. Las publicaciones privadas se publican automáticamente, pero no son visibles para nadie más que para aquellos con los niveles de permiso adecuados (editor o administrador).

Vea aquí .


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

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

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

Luego modificamos todas las consultas 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.

pd: esto puede necesitar algunas pruebas o ajustes … pero entiendes la idea 😉

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım