Vale, seguro que me vas a decir que WordPress ya contempla la posibilidad de restringir ciertas entradas, marcándolas como privadas o incluso con contraseña, pero lo que traigo hoy aquí es la posibilidad de definir ciertas entradas para las que tu sitio requiera de registro de usuario.
Para conseguirlo hay que seguir dos sencillos pasos …
1. Añade este código al fichero functions.php
:
//entradas que piden registro function my_force_login() { global $post; if (!is_single()) return; $ids = array(7794,199,22); // lista de IDs de entradas para las que hay que acceder if (in_array((int)$post->ID, $ids) && !is_user_logged_in()) { auth_redirect(); } }
Solo tienes que cambiar la lista de ‘array’ con los ID de las entradas que quieres proteger.
2. Añade este código al fichero header.php
:
<?php my_force_login(); ?>
Lo añades antes de
Y ya está, puedes probarlo haciendo clic aquí.
Solo tiene una pega, y es que la entrada si se verá si se está registrado al feed RSS, así que si a alguien se le ocurre como salvar este «problemilla» le estaremos agradecidos.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Sin embargo, el feed del blog te muestra el contenido de la entrada sin necesidad de registro (al menos en el Reader)
Saludos.
No seria mejor hacerlo metiendo los post en una categoría especifica, y comprobar si el post esta en esa categoria con in_category
http://codex.wordpress.org/Function_Reference/in_…
Buenas Fernando necesito contactar contigo por email para preguntarte una cosa personalemente ya que no me respondieron en el foro. Contacta conmigo por email: El tema esque quiero hacer unos widgets solo para usuarios logueados.Se podria?Como?Esplicamelo para idiotas
una opción es poner esas entradas en una categoría que se excluya del feed.
Cierto, buen apaño 🙂
Mira bueno funciona para los que visitan la pagina sin usar los feeds pero yo siempre leo los feeds asi que mira.
http://i41.tinypic.com/35laxp4.jpg
Si, ya lo he comentado en el post 🙂
bueno creo que tienen razon, ademas de que lo veo mas beneficioso y utilizable, deberian de ser en categorias en vez de post individualmente.
y que tal usando is_user_logged_in() ???
Vaya, un honor que Fernando me piratee una de mis imágenes. Tratándose de Fernando no hay problema, faltaría más.
Debo reconocer que muchos de tus artículos son la fuente de inspiración para los mios.
También tengo que reconocer que la imagen la modifiqué de otra anterior para obtener el resultado final.
Sobre el código que puedo decir, muy interesante como todos los que publica Fernando.
http://enralados.com/como-mantener-wordpress-segu…
Pues disculpa pero no tenía ni idea, la encontré haciendo búsquedas de imágenes y no encontré que tuviera licencia alguna. La quito.
Se me coló este, lo puedes eliminar Fernando.
He modificado el código para que baste con crear un artículo y añadirle el campo personalizado "login" con el valor "1" para que no se muestre a los usuarios no registrados.
Habría intentado eliminar los artículos para registrados del feed y del loop de WordPress en general, pero al final se me ha hecho tarde y no he tenido tiempo, si alguien se anima, que se sienta libre de partir del código modificado.
Tenéis el código comentado y explicado aquí.
Lo veo muy util para una web de educacion en la que el contenido esta disponible solo para los alumnos registrados, claro a esa web no le pondria feeds porque justamente es contenido èxclusivo.
Justamente te estaba prescribir acerca de esto, porque viendo otras opciones como Google Apps, Ediublogs. y otras nunca estan completas, siempre a alguna le falta algo a mi gusto. Claro que pagando un extra todas ofrecen mejoras.
Vale, ya está arreglado, ahora funciona perfectamente: los posts para usuarios registrados NO aparecen NUNCA en el Feed, y en el loop de WordPress se ocultan automáticamente a no ser que el visitante haya iniciado sesión.
Como siempre, sentíos libres de modificar y mejorar el código, que podéis encontrar, como antes, comentado y explicado, aquí.
Y no hay una forma para que todas las entradas sean para usuarios registrados? sin tener que poner las ids manualmente?
Sí, prueba con este código:
<code>
//entradas que piden registro
function my_force_login() {
global $post;
if (!is_single()) return;
if (!is_user_logged_in()) {
auth_redirect();
}
}
my_force_login();
</code>
donde va este codigo?
Y existe alguna forma de que se pida clave para ver los posts que tengan un determinado tag?
Sumolari, Al usar el plugin desarrollado por ti en mi sitio desaparecen las páginas tendras algun arreglo para esto?