wp_update_term_count()


WordPressのwp_update_term_count()関数は、指定されたターム(カテゴリーやタグなど)に関連付けられた投稿数を更新するために使用されます。この関数は、タームのカウントを正確に保つために重要です。

構文

wp_update_term_count( int|array $terms, string $taxonomy, bool $do_deferred = false );

引数の説明:

  • $terms (int|array) — 更新するタームのIDまたはIDの配列。
  • $taxonomy (string) — タームが属するタクソノミー(例: ‘category’, ‘post_tag’)。
  • $do_deferred (bool) — 遅延更新を行うかどうか。デフォルトはfalse。

例1: 単一のタームのカウントを更新

この例では、特定のカテゴリーの投稿数を更新します。

wp_update_term_count(get_term_by('name', '未分類', 'category')->term_id, 'category');

例2: 複数のタームのカウントを更新

この例では、複数のタグの投稿数を一度に更新します。

wp_update_term_count(array(get_term_by('name', 'WordPress', 'post_tag')->term_id, get_term_by('name', 'PHP', 'post_tag')->term_id), 'post_tag');

例3: 遅延更新を使用する

この例では、遅延更新を有効にしてタームのカウントを更新します。

wp_update_term_count(get_term_by('name', 'JavaScript', 'post_tag')->term_id, 'post_tag', true);

例4: カスタムタクソノミーのタームカウントを更新

カスタムタクソノミーのタームカウントを更新する例です。

wp_update_term_count(get_term_by('name', 'カスタムターム', 'custom_taxonomy')->term_id, 'custom_taxonomy');

例5: すべてのタームのカウントを更新

この例では、特定のタクソノミーに属するすべてのタームのカウントを更新します。

$terms = get_terms(array('taxonomy' => 'category', 'hide_empty' => false)); wp_update_term_count(wp_list_pluck($terms, 'term_id'), 'category');

例6: 空のタームのカウントを更新

この例では、投稿が関連付けられていないタームのカウントを更新します。

$terms = get_terms(array('taxonomy' => 'post_tag', 'hide_empty' => false)); wp_update_term_count(wp_list_pluck($terms, 'term_id'), 'post_tag');

例7: 特定の投稿IDに基づいてタームカウントを更新

この例では、特定の投稿に関連するタームのカウントを更新します。

$post_id = get_the_ID(); $terms = wp_get_post_terms($post_id, 'category', array('fields' => 'ids')); wp_update_term_count($terms, 'category');

例8: バルク更新を使用してタームカウントを更新

この例では、バルク更新を使用して複数のタームのカウントを一度に更新します。

$terms = get_terms(array('taxonomy' => 'post_tag', 'hide_empty' => false)); wp_update_term_count(wp_list_pluck($terms, 'term_id'), 'post_tag');

注意点

  • この関数は、タームのカウントを正確に保つために使用されますが、大量のデータを扱う場合にはパフォーマンスに影響を与える可能性があります。
  • 遅延更新を使用すると、パフォーマンスが向上する場合がありますが、即時性が犠牲になることがあります。

関連機能: