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', 処理) で行うとうまくできました。ベストタイミングが別にある場合は
教えてほしいです。
誰かの役に立てば幸いです。