Soporte » Plugins y Hacks » Hacks » Mostrar excerpt (extracto) cuando post tiene password

  • Resuelto Manstrak

    (@manstrak)


    Estimados:
    He googleado por todas partes y aplicado varias ideas de códigos sobre esto y no he podido dar con una solución.
    Probé prácticamente con todos los plugins existentes y probé muchos códigos que no fucionaron o generaron algún error.

    En concreto estoy buscando la manera de que un post (entrada) que está en nivel «protegido por contraseña» permita a los invitados (usuarios no registrado) leer su extracto (excerpt) y luego pedirles una contraseña para mostrar el resto del post.

    Soy profesor y en mi sitio tengo información para distintos cursos y colegios, por lo que quiero que separar esa información de uno y de otros dándoles claves específicas para que revisen el material que les corresponde a ellos.

    ¿Alguien ha aplicado esto antes? ¿Alguien lo ha probado?
    Agradezco experiencias,
    Gracias.

Viendo 6 respuestas - 1 de 6 (de 6 total)
  • Moderador LGrusin

    (@lgrusin)

    Tendrías que sustituir en todos los archivos donde apareciera the_excerpt() o the_content() por algún código, como por ejemplo:

    <?php
    if ( is_user_logged_in() ) {
       the_content();
    } else {
       the_excerpt()
    }
    ?>

    De manera que siempre aparece el extracto a no ser que el usuario haga login, en cuyo caso verá el post completo.

    Un saludo

    Has probado códigos que no funcionan o que generan error ….. ¿qué códigos has probado? ¿qué errores obtienes? Es para no darte otra vez soluciones que ya hayas probado.

    Esto debería funcionar:

    add_filter('the_excerpt','display_protected_excerpts', 10);
    function cyb_display_excerpt_in_password_protected_posts( $excerpt ) {
        global $post;
        if ( post_password_required( $post ) ) {
            return apply_filters('get_the_excerpt', $post->post_excerpt);
        }
        return $excerpt;
    }
    
    add_filter( 'the_content', 'cyb_add_excerpt_to_password_protected_posts', 10);
    function display_excerpt_on_protected_posts( $content ) {
        global $post;
        if ( post_password_required( $post ) ) {
            return $content . apply_filters('get_the_excerpt', $post->post_excerpt);
        }
        return $content;
    }

    @lgrusin, los posts «protegidos con contraseña» tienen una contraseña que hay que introducir para poder verlo, independientemente de que sea un usuario logeado o un usuario invitado. Los posts «privados» si son los que son visibles sólo para usuarios logeados.

    Los dejo hasta el fin de semana (donde tengo más tiempo) para probar esto. Debo preparar clases. Ahí les cuento cómo me fue.
    Gracias!

    Moderador LGrusin

    (@lgrusin)

    Cierto cybmeta, pero me pareció una solución más fácil que estar poniendo contraseñas a cada post para después darles acceso.

    No necesariamente tienen que ser posts privados.

    Creo (igual me equivoco) que no es posible leer un post con the_content o the_excerpt si está protegido por contraseña, precisamente para eso es.

    Otro truco más fácil sería añadir manualmente el excerpt a un campo de usuario y después mostrar este, ya que a los campos de usuario no le afecta la protección con contraseña.

    EDITO: Los excerpt manuales no se ven afectados por la protección de los posts por contraseña. Con lo que la idea de los campos de usuario no es necesaria. Se escribe manualmente el excerpt (incluso con contenido diferente al post) y se puede usar alguno de los códigos que ha puesto cybmeta antes, con los nombres de las funciones bien… 🙂

    Un saludo

    ¿Seguro que los excerpt manuales no se ven afectados si el post se pone bajo contraseña? Tendría que probar algo más, los tests que hice con el código que puse en el mensaje anterior fueron con excerpt manuales y si se afectaban.

    De todas formas estoy contigo, puede que «esconder» los posts de un grupo de usuarios («colegios» o «colegios» en este caso) a los demás grupos mediante este método no sea el mejor, pero es uno rápido y ya listo para usar en WordPress.

Viendo 6 respuestas - 1 de 6 (de 6 total)
  • El debate ‘Mostrar excerpt (extracto) cuando post tiene password’ está cerrado a nuevas respuestas.