[WordPress] カテゴリー・タグ・カスタムタクソノミーを外部から登録・編集する
スポンサーリンク
外部のプログラムからWordPressに投稿を行うにはwp_insert_post()
を使います。それと同じように、カテゴリーやタグ、カスタムタクソノミーも外部から登録・編集することを可能とする関数が用意されています。登録にはwp_insert_term()
、更新にはwp_update_term()
を使います。以下はwp_insert_term()
並びにwp_update_term()
を使ったタクソノミーの操作手順の覚書です。
以下はWordPressを設置したディレクトリの上の階層に、タクソノミー操作プログラムを設置したという前提のコードです。
operation-taxonomy.php //タクソノミー操作プログラム wordpress //WordPressをインストールしたフォルダ wp-blog-header.php //以下略
イメージとしてはこんな感じ。
operation-taxonomy.phpで外部からタクソノミーの編集を行います。例えばカテゴリー「日記」のデスクリプションを編集するなら、以下のようなコードになるでしょうか。
//WordPress Load require('../wordpress/wp-blog-header.php'); $taxonomy_type = $_POST['taxonomy_type'];//categoryやtag, カスタムタクソノミー名を指定 $taxonomy_name = $_POST['taxonomy_name'];//新規登録、又は更新したいタクソノミー名 $taxonomy_description = $_POST['taxonomy_description']; //項目名を元にterm_idを取得 $terms = get_term_by("name", $taxonomy_name, $taxonomy_type); //まだ存在しない場合はfalseなので、 !$terms ? //存在しなければ新規登録 wp_insert_term($taxonomy_name, $taxonomy_type, array("description"=>$taxonomy_description) ): //存在するならUpdate wp_update_term($terms->term_id, $taxonomy_type, array("description"=>$taxonomy_description) );
タクソノミーのアップデートにはterm_idが必要なので、get_term_by()
でタクソノミー名を元にterm_idを取得します。
そのタクソノミーが未登録のものだった場合、返り値はnullなので、wp_insert_term()で新規登録、nullでなければwp_update_term()でアップデートしています。
スポンサーリンク
WordPressカテゴリーの投稿
- [WordPress] 記事が更新された回数を取得する
- [WordPress] ダッシュボードのウィジェットを表示オプションを使わずに非表示化する
- [WordPress] 関連記事をカテゴリーに基づきアイキャッチ画像つきで表示
- [WordPress] バックアッププラグインの特徴と機能比較
- [WordPress] タグ版wp_list_categories
- [WordPress] have_comments()がFALSEを返しコメントが表示されない現象
- [WordPress] 個別記事ページでカテゴリーを表示するときの目的別の方法
- [PHP] 文字長がnバイト以下になるまで末尾の文字を1字づつカット
- [WordPress] wp_insert_post()でhtmlタグが除去されるのを防ぐ
- [WordPress] カスタムフィールドで一つのキーに複数の値を保存