web-dev-qa-db-fra.com

Nombre de termes par utilisateur

Je développe une section sur le devant de notre site Web. Nos utilisateurs soumettent des propriétés à notre annuaire. nous voudrions montrer combien de propriétés ils ont énumérées et quels types. J'ai ce code, mais il indique tous les comptes de publication de tous les utilisateurs pour lesquels je souhaite simplement afficher leur nombre de publication, de sorte qu'il s'agisse de propriétés résidentielles: 15. C'est le code que j'utilise, quelqu'un peut-il me dire où je me suis trompé.

$term = get_term( 110, 'property_type' );
// WP_Term_Query arguments
$args = array(
    'taxonomy'   => array( 'property_type' ),
    'name'       => array( 'Residential' ),
    'slug'       => array( 'residential' ),
    'author'     => $userID,
    'pad_counts' => false,
    'fields'     => 'count',
    'hide_empty' => true,
);

// The Term Query
$term_query = new WP_Term_Query( $args );
echo 'Residential Properties: '. $term->count;
1
DirectWeb

C'est un peu difficile à deviner, qu'est-ce que vous essayez de faire exactement, mais laissez-moi essayer de vous répondre ...

Ma meilleure hypothèse est que vous voulez dire combien de propriétés ont été publiées par l'utilisateur dans un type de propriété donné.

Alors d'abord - pourquoi votre code ne fonctionne pas ...

get_term obtiendra les informations sur le terme et il n'y a pas de contexte utilisateur, donc le nombre de messages publiés dans ce terme sera comptabilisé ... Cela ne vous aidera donc pas.

WP_Term_Query est presque la même fonction. Et, si vous regardez sa référence , vous remarquerez qu'il n'y a pas de paramètre author. Donc, cela ne vous aidera pas non plus.

Pourquoi est-ce le cas?

Parce que ces fonctions obtiennent des termes info et les termes n'ont pas d'auteurs ...

Alors, comment obtenir le nombre de messages d'un terme donné créés par un utilisateur donné?

Le moyen le plus simple consiste à utiliser WP_Query et à utiliser son champ found_posts (qui stocke le nombre total de publications trouvées correspondant aux paramètres de requête actuels) ...

$posts = new WP_Query( array(
    'author' => $userID,
    'post_type' => 'property',  // I'm guessing that is your post type
    'tax_query' => array(  // here goes your taxonomy query
        array( 'taxonomy' => 'property_type', 'field' => 'slug', 'terms' => 'residential' ),
    ),
    'fields' => 'ids', // we don't need content of posts
    'posts_per_page' => 1, // We don't need to get these posts 
) );

echo 'Residential Properties: '. $posts->found_posts;
1
Krzysiek Dróżdż

Bon appel Krzysiek Dróżd, en tant que réf, je souhaite partager ce code car quelqu'un peut en avoir besoin.

`$ userID, 'post_type' => 'listings', 'post_status' => 'published', 'fields' => 'ids', 'posts_per_page' => 1,
));

                                echo 'Published Properties: '. $posts->found_posts;
                                ?>`
0
DirectWeb