概要
wp_set_post_categories
関数は、WordPressの投稿情報にカテゴリーを設定するために使用されます。この関数を使用することで、投稿に対して特定のカテゴリを簡単に関連付けることができます。また、複数のカテゴリを一度に設定することも可能です。以下は、この関数がよく使われる機能の例です。
- 投稿を特定のカテゴリに分類する
- カスタム投稿タイプにカテゴリを設定する
- 自動的に投稿にカテゴリーを追加するプラグインの作成
- 投稿エディタでのユーザー体験を向上させる
- 投稿のフィルタリング機能を強化する
- 特定の条件に基づいて動的にカテゴリーを設定する
- 定期的な投稿に対して同じカテゴリを一括設定する
- 他の投稿やページとの関連性を高める
構文
wp_set_post_categories( $post_id, $categories, $append );
パラメータ
- $post_id (int) : 更新する投稿のID。
- $categories (array|string) : 設定するカテゴリーのIDまたはスラッグの配列。
- $append (bool) :
true
の場合、既存のカテゴリーに追加します。false
の場合、既存のカテゴリーを置き換えます。デフォルトはfalse
。
戻り値
- (array) : 設定されたカテゴリーのIDの配列。
関連する関数
使用可能なバージョン
wp_set_post_categories
は、WordPress 2.3.0以降で使用可能です。
コアファイルのパス
wp-includes/taxonomy.php
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: 投稿に新しいカテゴリーを設定する
$post_id = 1; // 変更したい投稿のID
$categories = array(2, 3); // 2と3のIDを持つカテゴリーを設定
wp_set_post_categories($post_id, $categories);
このコードは、特定の投稿にカテゴリーID 2と3を設定します。
サンプルコード 2: 投稿のカテゴリーを追加する
$post_id = 1; // 対象の投稿ID
$additional_categories = array(4); // 追加するカテゴリーID
wp_set_post_categories($post_id, $additional_categories, true);
このコードは、投稿に既存のカテゴリーに新たにカテゴリーID 4を追加します。
サンプルコード 3: カスタム投稿タイプにカテゴリーを設定する
$post_id = 2; // カスタム投稿のID
$custom_categories = array('custom-category-1', 'custom-category-2'); // カスタムカテゴリーのスラッグ
wp_set_post_categories($post_id, $custom_categories);
このコードは、カスタム投稿に特定のカスタムカテゴリーを設定します。
サンプルコード 4: 投稿を一括で更新する
$posts = get_posts(array('numberposts' => -1)); // すべての投稿を取得
foreach ($posts as $post) {
wp_set_post_categories($post->ID, array(5)); // すべての投稿にカテゴリーID 5を設定
}
このコードは、サイト内のすべての投稿に対して、カテゴリーID 5を一括設定します。
サンプルコード 5: 投稿作成時に自動でカテゴリーを設定する
add_action('wp_insert_post', 'set_default_categories');
function set_default_categories($post_id) {
if (get_post_type($post_id) === 'post') {
wp_set_post_categories($post_id, array(1)); // 投稿にデフォルトカテゴリーを設定
}
}
このコードは、新しい投稿が作成された時に、デフォルトのカテゴリーID 1を自動的に追加します。