wordpress : wp_insert_term() やwp_insert_category() を実行してもカテゴリ一覧に反映されない。

2013.02.09

いま作成中のシステムでwordpress使ってて、問題がクリアできたのでシェア。

プログラム中でwp_insert_category()でカテゴリを追加するところがありました。

プログラム(wp_insert_category())でカテゴリの追加自体は成功するんですが、いざ管理画面を見ても、スクリプトで追加したはずのカテゴリが見当たらないんですね。
なんかおかしい。エラーか。バグか。

この時、適当なカテゴリを管理画面上で追加してやると、プログラムで追加したカテゴリが表示される。

推測としては、管理画面が呼んでるプログラムはカテゴリの追加処理をしたあと、なにかしら再構築のような処理を呼んでるのかなと思ってて、
ああ管理画面のソース読まないといけないかなとゆーうつになりつつググったら下記がヒット。

wp_insert_term() で挿入したタグがカテゴリー(タクソノミー)一覧に反映されない場合

ドンピシャでこれでした。

$arg =array(
‘cat_name’ => $new_cat_name,
‘category_nicename’ => $slug,
‘category_parent’ => $parent_id,
‘taxonomy’ => ‘category’
);

$new_category_id = wp_insert_category($arg);

というようにカテゴリを追加したあとに

delete_option(“category_children”); 

これを実行します。

キャッシュされたカテゴリのツリー構造のようなものを削除して再構築、再構成してくれるんだと思います。たぶん。

上記サイト管理者様、重要な情報ありがとうございました。
(検索方法が悪いのか、当該解決方法がなかなか見つからず困っていたところでした。)

次の記事: もうシステムで和暦使うのやめましょうよ

てか前回、元号が変わってもう25年たったんですね。 25年前ったら、コンピュータつったらなんだったでしょう。わたしにとっちゃファミコンですが。   コンピュータのシステム上...続きを読む

前の記事: xpdfのpdftotextでPDFからテキスト抽出する。日本語対応・レンタルサーバでの運用でつまづいたところ。

(プログラムのはなしです) 掲題の件。 製作中のWebのプログラムで、「WebのシステムにPDFをアップロードするとPDFのテキストを読み取ってDBに保存する」という要件を満たすた...続きを読む