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.
Iniciador del debate
Manstrak
(@manstrak)
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!
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.