Cómo registrar una taxonomía personalizada para usuarios de WordPress

El Taxonomía personalizada La característica se ha introducido desde WordPress 2.9. Le permite crear grupos personalizados para publicaciones, páginas y tipos de publicaciones personalizadas.

Digamos que está creando un sitio web de directorio de libros y ha creado un tipo de publicación personalizada para publicar el Libros. Al utilizar la taxonomía personalizada, puede crear una taxonomía personalizada para él, llamada Género. Dentro de esta taxonomía de Género, puede crear una serie de elementos (que técnicamente se denominan términos) como Ficción, Niños o Biografía para agrupar los Libros.

Desafortunadamente, en este punto, no podemos registrar una taxonomía personalizada para los usuarios; al menos no de forma directa como lo registraríamos en los otros Tipos de Post. Una aplicación perfecta que podríamos prever de esta idea es que podemos usarlo para asignar atributos de usuario adicionalescomo su ocupación, profesión o posición organizacional, en lugar de registrar un nuevo conjunto de roles de usuario. También abre la posibilidad de consultar a los usuarios en función de los términos de taxonomía asignados.

Si esta idea es algo que puede beneficiar a su sitio web, eche un vistazo a este consejo.

Empezando

Primero, instalaremos un complemento llamado Taxonomías de usuario para simplificar nuestro trabajo.

Una vez activado el complemento. Vaya a GenerateWP para generar los códigos de taxonomía. Coloque la salida del código en el funciones.php archivo de su tema. Este fragmento de código a continuación es un ejemplo. Sin embargo, se ha eliminado para que este artículo parezca más corto. Puedes seguir este enlace para ver el código completo.


if ( ! function_exists( 'user_staff_position' ) ) {
function user_staff_position() {
	register_taxonomy( 'staff_position', 'post', $args );
}
add_action( 'init', 'user_staff_position', 0 );
}

Ahora, cambie el parámetro Tipo de publicación en la siguiente línea:


register_taxonomy( 'staff_position', 'post', $args );

…de post a useral igual que:


register_taxonomy( 'staff_position', 'user', $args );

Ahora, vaya a WP-Admin, y debería encontrar un nuevo menú agregado en el menú Usuarios, como se ve a continuación.

nuevo menú de usuario
Asignación de la taxonomía personalizada

Navegue al nuevo menú y cree algunos términos. Para este ejemplo, creamos dos elementos: CEO y Gerentes.

crear impuesto de usuario

Luego vaya a la pantalla de edición de usuarios y asigne un elemento de la taxonomía al usuario.

impuesto de selección de usuario

Consulta a los usuarios

Vamos a mostrar los usuarios en el tema según el término dado (de la taxonomía). Pero antes de continuar, creemos una nueva plantilla de página. Vamos a agregar los códigos a lo largo de la siguiente sección dentro de esta nueva plantilla.

En este caso particular, no podremos consultar a los usuarios con get_users o WP_User_Query; cuando creas un nuevo WP_User_Query clase, no genera la taxonomía personalizada que se asigna a los usuarios. Justin Tadlock, en su tutorial, nos muestra cómo usar el get_objects_in_term función, en cambio.

Esta función genera el ID del objeto (que en nuestro caso el objeto significa el usuario) que están vinculados con el término. Para usarlo, necesitamos dos parámetros: el ID del término y el nombre de la taxonomía. Puede ver el ID del término en la barra de URL del navegador cuando lo edita como se muestra a continuación.

identificación del término

Una vez que haya encontrado la ID, colóquela dentro de la función, así.


$users = get_objects_in_term(3, 'user_position'); 

Puedes usar var_dump() para mostrar los ID de objeto que se han recuperado; En mi caso me devuelve los usuarios con el ID de 1 y 3.

ID de objeto de usuario

Con estos ID también podemos recuperar, por ejemplo, el nombre de usuario y el avatar.


<ul>
<?php if ( !empty( $users ) ) : ?>
	<?php foreach ( $users as $id ) : ?>
		<li class="user-entry">
			<figure><?php echo get_avatar( get_the_author_meta('email', $id), '40' ); ?></figure>
			<h5 class="user-title"><a href="https://www.hongkiat.com/blog/wordpress-custom-taxonomy-for-users/<?php echo esc_url( get_author_posts_url( $id ) ); ?>"><?php the_author_meta( 'display_name', $id ); ?></a></h5>
		</li>
	<?php endforeach; ?>
<?php endif; ?>
</ul>

…y, finalmente, aquí está el resultado.

resultado de la consulta

Eso es todo. Puede modificar libremente los códigos anteriores para cumplir con sus requisitos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio