私はメインサイトと3つのサブサイトを持つマルチサイトを運営しています(サブサイトの数は最後には200以上になるでしょう)。現在、すべてのサイトにAというカテゴリ、Bというカテゴリ、およびCというカテゴリがあります。カテゴリBのすべてのサブサイトに対して行われ、カテゴリCのすべてのサブサイトに対して行われたすべての投稿は、このように出力されます。
もちろん、投稿はカテゴリAとカテゴリBに同時に含まれる可能性があり、1回しかカウントできません。
私はすべての投稿を数える方法を見つけました:
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>";
特定のカテゴリの投稿に問題があります。これが私がこれまでに持っているものです:
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>";
しかし、それは正しく機能していません。私はまったく正しい軌道に乗っていますか?
答えを見つけ、それが将来の世代に役立つように以下のコードを投稿してください。
<?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>";
?>