WordPress wp_set_object_termsでカテゴリーが更新できなかったとき

WordPress wp_set_object_termsでカテゴリーが更新できなかったとき

どうもfujiharaです。涼しくなってきて過ごしやすくなりましたね。 今回は、WordPressでつい最近ハマった点を解決した 方法をご紹介いたします。

背景

案件でここ1、2年でWordPressを扱うことが増えてきました。色々カスタマイズすることがあるのですが、 記事のカテゴリーの更新をWordPressの管理画面以外から実施する時に全然できなくて、『何で?』って思っていました。 WordPressに精通した人だと当たり前かもしれませんが。。

詳細

テーマ内でPOSTされたデータに対して、以下のように行っていました。


wp_set_object_terms($postId, [$termId], $taxonomy);

で返って来る値がWP_Error で不正なタクソノミーですと。。。ググっても全然わからない。。。
調査していくとコマンドラインで wp-blog-header.php を読み込んで実施した場合は うまく行きました。get_termsでカテゴリーを取得しようとすると不正なカテゴリーですと言われます。 って事でhook を調べていくと カテゴリーが登録されるのがテーマより後ってことが判明し、 do_action('wp_loaded', 処理) で行うとうまくできました。ベストタイミングが別にある場合は 教えてほしいです。
誰かの役に立てば幸いです。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ