wp_set_post_categories

説明

mixed wp_set_post_categories( [ int $post_ID = 0 [ , array $post_categories = array() ] ] )
投稿情報にカテゴリーを設定する。

パラメータ

  • $post_ID
    投稿IDを指定(省略時は0)。
  • $post_categories
    カテゴリーIDを配列で指定(省略時はarray())。

返り値

設定したカテゴリーIDの配列を返す。設定できなかった場合は、エラー内容を示す WP_Errorのオブジェクトを返す。

注意

指定したカテゴリーは投稿記事に設定された既存のカテゴリーをまるごと置き換えられる。追加したい場合は wp_set_object_terms関数を使用する。

なおパラメータ$post_categoriesにarray( '' )が指定された場合は、カテゴリーの設定は行わずにtrueを返す。

[5.5.0]'default_category_post_types'フィルターが追加され、カスタム投稿タイプの投稿情報にデフォルトカテゴリーが適用できるようになった。


使用例

  • 投稿IDが100の投稿記事にカテゴリーIDが3のカテゴリーを設定する。
    <?php wp_set_post_categories( 100, array( 3 ) ); ?>

フィルター

[5.5.0]本関数のパラメータ$post_categoriesが空の場合に'default_category_post_types'フィルターを呼び出す。パラメータ$post_typesは空の配列が格納されている。
$default_category_post_types = apply_filters( 'default_category_post_types', $post_types );

アクション

実行するアクションはありません。

ソースファイル

/wp-includes/post.php

最終更新 : 2020年08月20日 15:42



お勧め

プラグインのロード順を制御する(2014年6月9日 更新)

これまでプラグインがどのような順番でロードされるか意識していなかったのだが、とある自作プラグインを他のプラグインよりも先にロードさせたくなったので調べてみた。

Emojin:プラグイン作ってみました(2015年3月21日 更新)

ちょっと前のTLでiOSの絵文字を含んだ投稿を保存すると、絵文字以降の文章がすべて消えた状態で保存されるといったツイートを見かけた。少し検索してみると、MySQLのデータベースの文字セットが「utf8」の場合、iOSの絵文字のような4バイトの文字を正常に保存できず、それ以降の文章も保存されないというものらしい。対処方法としてデータベースの文字セットを「utf8mb4」に変更するのが有効らしいのだが、他に回避策がないか考えてみた。

Contact Form 7に確認フェーズを(2012年12月16日 更新)

Contact Form 7はWordPressによるサイト製作でお世話になることが多いプラグインの1つ。ただ、クライアント様によっては、入力、確認、送信の3フェーズにしたいという要望があり、そんな時は別の方法を採用していたのですが、JavaScript(jQuery)を使ってページ遷移しなくてもいいなら確認フェーズは用意できるかなと思い、作り込んでみた。

プラグインのヘッダー情報を国際化対応しよう(2018年5月27日 更新)

バージョン4.8がリリースされてひと段落。あらためてプラグイン一覧ページを見てみると「Akismet」が「Akismet Anti-Spam (アンチスパム)」と表示されていた。説明文だけじゃなくプラグイン名も国際化対応できたのね。

メタボックスをクラシックエディターのみで表示する(2019年1月15日 更新)

投稿画面向けにメタボックスを使ったプラグインがあり、それがブロックエディターで意図した通りに機能しなかった。この対処方法を考える過程でエディタータイプに応じてメタボックスを出し分けできる方法が見つかったので紹介したい。