WordPress Snippet: Reemplazar el saludo al usuario

Hoy volvemos como no, con un nuevo WordPress Snippet.

Se que a muchos os gustan estos trocitos de código y por eso los voy poniendo. Además, así me da tiempo a preparar otro tipo de contenido con el cual estoy ahora y que poco a poco iré anunciando para cuando llegue el momento.

Pues bien, en este post vamos a hacer algo bien sencillo que no es otra cosa que cambiar la palabra de saludo que WordPress pone delante del nombre del usuario logueado, en la parte superior derecha de la pantalla.

Tal vez con un poco más de luz:

WordPress snippet - cambiar el saludo al usuario

Eso es, a este saludo me refiero. En concreto a la palabra «Hola«.

Si, esta palabra es posible modificarla de otras formas como por ejemplo modificando el fichero «.po» de la traducción al Español de WordPress pero aquí estamos para hacer cosas con WordPress, para trastear y para practicas programación que es lo que nos gusta, ¿Verdad?

El Snippet

A los que ya visitáis esta web de vez en cuando igual os choca un poco que ponga este título.

Pues bien, éste va a ser el primero de muchos WordPress Snippets que vamos a hacer y que a partir de ahora procuraré hacerlo de dos formas. La primera de ellas será la que venimos haciendo hasta ahora para incluir en el fichero «functions.php» de nuestro tema y la segunda será creando un plugin.

Los plugins que crearemos al principio serán muy sencillos, sin complicaciones pero según vayamos avanzando, intentaré complicarlos para que aprendáis todo lo que podáis con mis consejos.

Manos a la obra

Nos centramos en este Snippet en concreto y para ello nos queda claro que lo que tiene que hacer es sustituir la palabra «Hola» por otra palabra que nos guste para saludar a los usuarios registrados. En mi caso voy a sustituirla por «Qué pasa«.

Crearemos la función «oaf-wp-reemplazar-hola«. Aquí a vuestro gusto…

Bueno, como es pequeña, pongo la función y a continuación explico un poco el código.

function oaf-wp-reemplazar-hola( $saludo ) {
    $nuevo_saludo = 'Que pasa';
    if ( is_user_logged_in() ) {
        $text = str_replace( 'Hola', $nuevo_saludo, $saludo );
    }
    return $saludo;
}

En primer lugar creamos una variable para almacenar la palabra que queremos que sustituya a «Hola«. Esta variable la he llamado $nuevo_saludo para que quede claro de lo que estamos hablando.

Posteriormente comprobamos que el usuario esté logueado y si es así procede a reemplazar el texto «Hola» por el que contiene la variable $nuevo_saludo y lo guarda en la variable $saludo.

Par finalizar, retornamos el valor de $saludo y función lista.

Ahora nos queda el filtro o filter, como era de esperar.

El filtro / filter

En este caso utilizaremos el «gettext» junto con el nombre de la función que acabamos de crear.

Por consiguiente el filtro quedaría así:

add_filter( 'gettext', 'oaf-wp-reemplazar-hola' );

Fácil y sencillo, ¿Verdad?

El código

Creo que no hay nada más que explicar sobre esto por lo que voy a poner el código completo del snippet a continuación para que podáis disponer de el cuando queráis.

El desenlace

Eso es, si. Con desenlace me refiero a ver lo que nos ha hecho este snippet y para ello basta con mirar de nuevo en la parte superior derecha de la pantalla y ver cómo no saluda ahora: