custom-taxonomy – Consultar usuarios por taxonomía personalizada y rol de usuario

Pregunta:

Estoy tratando de hacer una consulta para los usuarios que usan WP_User_Query() Necesito filtrar a los usuarios por rol shop_manager y taxonomía personalizada llamada shop-category e ID de término de taxonomía actual.

El código que tengo hasta ahora:

<?php 

// WP_User_Query arguments
$args = array (
    'role'           => 'shop_manager',
    'order'          => 'DESC',
    'orderby'        => 'user_registered',
    'tax_query' => array(
    array('taxonomy' => 
    'shop-category', 
    'field' => 'id', 
    'terms' => $term_id ) ) 
);

// The User Query
$user_query = new WP_User_Query( $args );

// The User Loop
if ( ! empty( $user_query->results ) ) {
    foreach ( $user_query->results as $user ) {
        echo '<li><span>' . esc_html( $user->shop_name ) . '</span></li>';
    }
} else {
    // no users found
}

?>

Para obtener la identificación del término, estaba usando este código

<?php $queried_object = get_queried_object();
$term_id = $queried_object->term_id; 

echo 'ID = '. $term_id;?>

Ahora muestra a todos los usuarios con rol shop_manager . Parece que la taxonomía no funciona.

Respuesta:

Aparentemente, todavía no hay una implementación central de 'tax_query' en WP_User_Query .

Consulte el boleto aquí para obtener más información -> https://core.trac.wordpress.org/ticket/31383

Sin embargo, hay una forma alternativa de usar get_objects_in_term

$taxonomy = 'shop-category';
$users = get_objects_in_term( $term_id, $taxonomy );    

if(!empty($users)){

    // WP_User_Query arguments
    $args = array (
        'role'           => 'shop_manager',
        'order'          => 'DESC',
        'orderby'        => 'user_registered',
        'include'        => $users
    );

    // The User Query
    $user_query = new WP_User_Query( $args );

    // The User Loop
    if ( ! empty( $user_query->results ) ) {
        foreach ( $user_query->results as $user ) {
            echo '<li><span>' . esc_html( $user->shop_name ) . '</span></li>';
        }
    } 
    else {
        // no shop_manager found 
    }
}
else {
    // no users found
}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım