Je gère un multisite avec un site principal et 3 sous-sites (le nombre de sous-sites sera supérieur à 200 à la fin). Maintenant, sur chaque site, j'ai une catégorie appelée A, une catégorie appelée B et une catégorie C. Sur mon site principal, je souhaite publier un décompte de tous les articles publiés sur tous les sous-sites, tous les articles publiés sur tous les sous-sites de la catégorie A, tous les articles. fait sur tous les sous-sites dans la catégorie B, tous les messages postés sur tous les sous-sites dans la catégorie C. Donc, je reçois le résultat comme ceci:
Bien sûr, un article peut être dans les catégories A et B en même temps, et ne peut être compté qu'une fois.
J'ai trouvé le moyen de compter tous les messages:
global $wpdb;
$post_count = $wpdb->get_var(
"SELECT COUNT(*) FROM wp_2_posts WHERE post_status = 'publish' AND post_type = 'post' " );
$post_count1 = $wpdb->get_var(
"SELECT COUNT(*) FROM wp_3_posts WHERE post_status = 'publish' AND post_type = 'post' " );
$post_count2 = $wpdb->get_var(
"SELECT COUNT(*) FROM wp_4_posts WHERE post_status = 'publish' AND post_type = 'post' " );
$sum = $post_count + $post_count1 + $post_count2;
echo "<p>All posts {$sum}</p>";
J'ai des problèmes avec les messages dans certaines catégories. Voici ce que j'ai jusqu'à présent:
global $wpdb;
$wp_count_terms = $wpdb->get_var(
"SELECT COUNT(*) FROM wp_2_term_taxonomy WHERE term_taxonomy_id = '22' " );
$wp_count_terms1 = $wpdb->get_var(
"SELECT COUNT(*) FROM wp_3_term_taxonomy WHERE term_taxonomy_id = '16' " );
$wp_count_terms2 = $wpdb->get_var(
"SELECT COUNT(*) FROM wp_4_term_taxonomy WHERE term_taxonomy_id = '13' " );
$sum = $wp_count_terms + $wp_count_terms1 + $$wp_count_terms2;
echo "<p>Posts in category A: {$sum}</p>";
Mais cela ne fonctionne pas correctement. Est-ce que je suis sur la bonne voie?
Trouvez la réponse en postant le code ci-dessous pour aider les générations futures.
<?php
global $wpdb;
$count_terms = $wpdb->get_var ("SELECT COUNT(*)
FROM wp_2_term_taxonomy, wp_2_posts, wp_2_term_relationships
WHERE wp_2_posts.ID = wp_2_term_relationships.object_id
AND wp_2_term_relationships.term_taxonomy_id = wp_2_term_taxonomy.term_taxonomy_id
AND wp_2_term_taxonomy.term_id = '22'
AND wp_2_posts.post_type = 'post'
AND wp_2_posts.post_status = 'publish' ");
$count_terms1 = $wpdb->get_var ("SELECT COUNT(*)
FROM wp_3_term_taxonomy, wp_3_posts, wp_3_term_relationships
WHERE wp_3_posts.ID = wp_3_term_relationships.object_id
AND wp_3_term_relationships.term_taxonomy_id = wp_3_term_taxonomy.term_taxonomy_id
AND wp_3_term_taxonomy.term_id = '16'
AND wp_3_posts.post_type = 'post'
AND wp_3_posts.post_status = 'publish' ");
$count_terms2 = $wpdb->get_var ("SELECT COUNT(*)
FROM wp_4_term_taxonomy, wp_4_posts, wp_4_term_relationships
WHERE wp_4_posts.ID = wp_4_term_relationships.object_id
AND wp_4_term_relationships.term_taxonomy_id = wp_4_term_taxonomy.term_taxonomy_id
AND wp_4_term_taxonomy.term_id = '13'
AND wp_4_posts.post_type = 'post'
AND wp_4_posts.post_status = 'publish' ");
$sum = $count_terms + $count_terms1 + $count_terms2;
echo "<p>Category A sum: {$sum}</p>";
?>