Mostrar extracto en post con contraseña
En WordPress a veces nos interesa ocultar el contenido de algunos posts o entradas. Tenemos varias opciones, hacer el post privado o proteger el post mediante contraseña. En el primer caso sólo las personas registradas podrán leer el contenido. En el segundo caso no será necesario registrarse pero si introducir una contraseña para poder leer el post.
Cuando un post es protegido por contraseña nos sale el típico mensaje de aviso y el formulario para introducir la contraseña. En algunas ocasiones puede resultar interesante mostrar además un resumen del contenido del post o incluso alguna otra información que no tenga nada que ver.
Debido a que el contenido está protegido no es posible acceder desde las funciones de the_content o the_excerpt, ya sea dentro del bucle loop o desde fuera mediante los filtros o acciones de WordPress. Sin embargo, no están protegidos los Custom Fields (campos de usuario) ni tampoco el extracto manual que podemos usar desde el editor de posts de WordPress.
La ventana para el Extracto manual lo podemos activar arriba a la derecha, en Opciones de pantalla (Screen Options), marcando Extracto (Excerpt). Una vez añadimos nuestro extracto sólo nos queda leer esa información y añadirla a nuestro formulario para ver el artículo completo.
Existe una función de WordPress que nos permite comprobar si el post está protegido por contraseña, post_password_required(). Podemos usarla para leer el extracto que hemos añadido manualmente y mostrarlo en la página inicial o cualquier otra cuando un post esté protegido por contraseña.
El siguiente código nos servirá para lo que queremos hacer:
function excerpt_post_protegido( $content ) { if ( post_password_required() ) { $post = get_post(); return $post->post_excerpt.$content; } return $content; } add_filter( 'the_content', 'excerpt_post_protegido', 10 );
De esta forma se mostrará el extracto con cualquier texto que deseemos y a continuación el formulario para introducir la contraseña y leer el artículo completo.