Crear Shortcode para restringir partes del contenido – Parte 1

Crear Shortcode para restingir el acceso a partes del contenido-parte 1

En esta ocasión vamos a ver cómo crear un shortcode para restringir partes del contenido de nuestras páginas o entradas de WordPress.

¿De qué estamos hablando?

Es posible que nos interese restringir ciertas partes de algunas página o entradas de nuestro blog por los motivos que sean.

Pero qué mejor que poner un ejemplo real, ¿Verdad?

Un ejemplo real

Os pongo el ejemplo de esta misma entrada en esta web.

Como comenté en algún artículo anterior, estamos comenzando una andadura que será larga y muy interesante en los terrenos de WordPress por lo que a parte de comentar y explicar los códigos «Snippets«, también daré la opción de descargar el mismo Snippet en formato plugin para que no tengamos nuestro fichero functions.php con tantas cosas e incluso podamos llegar a perderlo si algún día cambiamos de tema. Que pasará tarde o temprano.

Por lo tanto, al final de esta entrada daré la opción de descargar el plugin en cuestión. Ah! pero eso si! sólo para usuarios registrados.

No hay que preocuparse porque de momento es todo «by the face«. Simplemente quiero saber si esto que estoy haciendo sirve de algo y más adelante puedo montar algunos proyectos que tengo en mente y de los cuales os informaré de antemano.

Entonces el lo que os digo. cierta parte de esta entrada estará restringida a usuarios no registrados.

Esto es lo que vamos a hacer ahora.

La función que maneja el asunto

Eso es, vamos a escribir la función que maneje la lógica de este snippet o plugin.

Creamos una función que en mi caso la llamaré: «oaf-restrict-partial-content-shortcode«. Nada original, ya lo se…

function oaf_restrict_partial_content_shortcode(  ) {

}

Pues nada, ya la tenemos creada. Pero claro, habrá que escribir algo de lógica dentro, verdad?

La idea es que recoja el «contenido» y en función de que el usuario esté logueado o no, muestre una cosa u otra.

Por ejemplo, vamos a comprobar si:

  • El usuario está logueado (tiene que estar logueado para ver el contenido dentro del shortcode).
  • Si el contenido no es «null«. Es decir que tiene contenido.
  • Si no es un «feed«.

Estas son algunas de las comprobaciones que podemos realizar y para este ejemplo nos puede valer.

En posteriores tutoriales volveremos sobre este asunto para ir mejorando lo que hemos hecho.

Entonces, si el usuario está logueado Y el contenido no es «null» Y además no se trata de un «feed«, entonces la función retornará con contenido.

Pero si no es así, si no cumple alguna de las 3 condiciones anteriores, devolverá un texto en plan: «Este contenido sólo es visible para usuarios registrados. Regístrate!«.

Venga, vamos allá.

function oaf_restrict_partial_content_shortcode( $atts, $content = null ) {
	if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) {
		return $content;
	} else {
		return __( 'Upps! Este contenido sólo está disponible para usuarios registrados.', 'oaf_rpcs' );
	}
}

Es muy sencillo por lo que doy por sentado que se entiende correctamente el código.

Y el Shortcode, ¿Dónde está?

Eso es, nos falta añadir el código o función para crear el Shortcode.

Esto también es sencillo, lo único que tenemos que hacer es utilizar la función:

add_shortcode ();

Ya bueno, pero así sin más no haría nada.

Necesitamos 2 parámetros. Que son:

  • El nombre del Shortcode.
  • La función que gestiona el código del Shortcode.

Entonces:

add_shortcode ('restrict_pcs', 'oaf_restrict_partial_content_shortcode' );

Ahora si, ahora ya lo tenemos todo.

El Snippet completo

Este es el código completo de este Snippet:

Y ahora, como he prometido antes, a continuación disponéis del plugin que realiza lo mismo que el Snippet pero sin tener que incluir nada en nuestro functions.php.

Ya sabéis, lo descargáis y lo instaláis en vuestro WordPress.

Cómo usarlo

Para usar este shortcode que acabamos de crear tenemos que hacer lo mismo que con los demás shortcodes, es decir, introducir el contenido restringido dentro del comienzo y el fin del shorcode.

Por ejemplo. Si queremos restringir:  «Este contenido es super importante y tiene que estar restringido«. Haremos lo siguiente:

[restrict_pcs]Este contenido es super importante y tiene que estar restringido[/restrict_pcs]

Si el usuario está registrado y logueado, no tendrá ningún problema en ver el contenido restringido como muestro en la siguiente captura:

Plugin OAF Restrict Partial Content Shortcode
Plugin OAF Restrict Partial Content Shortcode 2

Ahora bien, si el usuario visitante no no está logueado, es decir, que no tiene cuenta en nuestro WordPress, verá el siguiente mensaje de aviso:

Perfecto. Ya lo veis!!

Bueno, al final este tutorial se a alargado un poco pero me gusta explicar las cosas poco a poco.

¿Y ya está?

Bueno, estar está. Jajaja… Pero no está ni por asomo visible o para andar enseñándolo por ahí.

Es por eso que estoy preparando una guía completa que compelte todo el proceso de la realización de este plugin. Eso sí, algunos contenidos estarán restringidos.

Haremos muchas cosas. Como por ejemplo darle un poco de estilo al mensaje, prepararlo para la traducción a otros idiomas, traducirlo al Español, Crear el «readme.txt«, etc…

Y al final de la guía realizaremos todo el proceso para publicarlo en el repositorio de http://www.wordpress.org.

¿Te animas?

Espero que te animes a seguir esta guía y otras que tengo en lista de espera.

Quiero Feedback

Pues eso, quiero que me comentéis cómo lo veis, que os gustaría que explicara mejor. Si voy muy lento, etc…

Bueno, por hoy lo dejamos aquí y ya seguiremos otro día.

Saludos y mucho ánimo!

Ver la parte 2