Publica artículos sólo para usuarios registrados en WordPress

This post was published 9 years ago. It may be exremely outdated.

Ayer comenté que intentaría mejorar un poco el script que descubrí vía AyudaWordPress. Pues bien, ya está modificado y con él tan sólo es necesario añadir el campo personalizado “login” con el valor “1” al artículo que se quiera bloquear para permitir el acceso sólo a usuarios registrados. El código es el que tenéis a continuación, y básicamente impide acceder a los artículos que tengan dicho campo personalizado con el valor 1 si el usuario no ha iniciado sesión, sin embargo sí que es visible en el índice del blog o en el archivo (al igual que en el feed).

El código está comentado, explicando qué hace cada cosa, espero que os sirva de ayuda. Para utilizarlo basta con ponerlo en el archivo functions.php de vuestro theme, o podéis descargar este archivo y subirlo a la carpeta de plugins y activarlo como un plugin más, tiene el mismo resultado.

<?php
	// Nuestra funcion para forzar el inicio de sesion
	function forzar_login()
	{
		if (is_single())
		{
			global $post; // Obtenemos la informacion respecto al articulo actual
			if (get_post_meta($post->ID, 'login', true) == '1') // Comprobamos el valor del campo personalizado login
			{
				// Para ver este articulo tiene que estar registrado
				if (!is_user_logged_in()) // Comprobamos si el usuario ha iniciado sesion
				{
					// No ha iniciado sesion, redirigimos
					auth_redirect();
				}
				else
				{
					// Ha iniciado sesion, luego puede ver el articulo
				}
			}
			else
			{
				// Puede ver este articulo tranquilamente porque no esta bloqueado
			}
		}
		else
		{
			// Esta viendo el articulo desde una pagina de archivo o el index del blog, se podria ocultar aqui tambien, pero la idea es que el usuario pueda ver el articulo en las listas pero para poder leerlo al completo tenga que iniciar sesion, asi que dejaremos esto tal cual
			return;
		}
	}
	add_action('wp', 'forzar_login'); // Añadimos la funcion a la accion
?>

2 Responses to Publica artículos sólo para usuarios registrados en WordPress

He mejorado y solventado los fallos del script. Tenéis la versión mejorada en este artículo.

Excelente… nunca se me habia ocurrido…. Muchisimas gracias por el aporte

Leave a Reply