Aprende a restringir la visualización y adición de comentarios en un Custom Post Type solo para suscriptores con Restrict Content Pro mediante código.
Una de las ventajas de pertenecer al club de Código Genesis es que puedes sugerir futuros tutoriales.
Por ejemplo, Gonzalo, uno de nuestros suscriptores, a raíz del artículo donde explicaba cómo restringir los comentarios a suscriptores, me dejó esta pregunta:
¡Hola, Nahuai!
¡Me he animado a apuntarme por aquí!
Una pregunta sobre este snippet. ¿Cómo puedo hacer que afecte solo a un CPT que he creado por código y no a los comentarios de los posts normales?
Un saludo y ¡gracias!
Me pareció una opción muy interesante así que me puse manos a la obra para adaptar el código a esa necesidad.
A continuación vas a descubrir cómo limitar la restricción de comentarios a un CPT mediante código si usas Restrict Content Pro.
Instrucciones para ocultar los comentarios a los no suscriptores en un CPT
1. Crea un snippet que limite los comentarios
Añade el siguiente fragmento al final de functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 1921 snippets de esta web,
identifícate o suscríbete aquí.
Al usar Restrict Content Pro para gestionar a los suscriptores, necesitas agregar una etiqueta condicional junto a una función que compruebe si el usuario tiene una suscripción activa. En este caso se trata de rcp_user_has_active_membership
(anteriormente rcp_is_active()
, que ahora ya está deprecada).
Por lo tanto, si el lector no cumple la condición, este bloque se encarga de eliminar los comentarios haciendo uso de los hooks de Genesis Framework.
Por otro lado, limitas el snippet a un CPT, en este ejemplo, el de porfolio. Solo tienes que modificar is_singular('portfolio')
por is_singular('tucpt')
para adecuarlo al CPT que te interese.
Además, con el fragmento anterior aprovechas para colocar un mensaje o CTA en la zona oculta para que los ‘no suscriptores’ entiendan por qué no ven los comentarios e invitarles a que se suscriban o identifiquen.
De nuevo, puedes (y debes) modificar este texto a tu gusto.
IMPORTANTE: si has creado el CPT mediante código, asegúrate de que has añadido soporte a los comentarios ('comments'
) en el array correspondiente.
Por ejemplo:
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'comments', 'genesis-cpt-archives-settings', 'genesis-seo', 'genesis-scripts', 'genesis-layouts', 'genesis-rel-author', ),
¿Continúas sin ver los comentarios en tu CTP?
Entonces revisa que estén activados:

2. Personaliza el CSS del CTA en la zona de comentarios
Una vez que has ocultado los comentarios a los no suscriptores, solo te falta darle un poco de estilos al mensaje que aparece en la zona restringida.
Para ello, añade este bloque al final de style.css:
Para ver este código y los otros 1921 snippets de esta web,
identifícate o suscríbete aquí.
Al insertar estas líneas de CSS te aseguras de que el mensaje se muestra como en esta web (codigogenesis.com).
Si quieres que se visualice el candado, añade este archivo a la ruta /assets/images/ (mantén pulsada la tecla alt al hacer clic sobre el link para descargarlo).
Como siempre, te invito a personalizar el tamaño de la caja, borde, colores corporativos…
Conclusiones
Ahora ya sabes cómo ocultar los comentarios a los no suscriptores en un CPT concreto y añadir un mensaje personalizado invitando a que se registren o identifiquen.
Si tienes alguna pregunta o quieres darme una sugerencia para próximos tutoriales, déjala en los comentarios.
Efectivamente. Ventajas de ser suscriptor de Código Genesis. 😉