MENU

タームのメタデータで同じ値を一括登録する

タームに対してメタデータを一括で登録する方法を紹介します。大量のタームに同じメタデータを追加したい場合や、デフォルトのメタデータを事前設定しておきたいときに役立つコードです。

SEO SIMPLE PACKを利用した方法です。

目次

解説

WordPressでは、各タームにメタデータを追加することで、SEO情報や表示用のカスタムデータを持たせることが可能です。しかし、個別に登録すると手間がかかるため、一括でメタデータを追加・更新する関数を作成します。これにより、メタデータを効率的に管理できます。

function update_all_{カスタムタクソノミー名}_terms_meta() {
    // タクソノミー 'カスタムタクソノミー名' のタームを取得
    $terms = get_terms([
        'taxonomy' => 'カスタムタクソノミー名',
        'hide_empty' => false,
    ]);

    // タームが取得できた場合、各タームに対してメタ情報を更新
    if (!empty($terms) && !is_wp_error($terms)) {
        foreach ($terms as $term) {
            // タームメタ情報を更新
            update_term_meta($term->term_id, 'swell_term_meta_ttlpos', 'top');
            update_term_meta($term->term_id, 'swell_term_meta_image', '{画像URL}');
        }
    }
}
// フックまたは一時的な実行用
add_action('init', 'update_all_{カスタムタクソノミー名}_terms_meta');
  1. get_terms(): 特定のタクソノミーからすべてのタームを取得します。この際、hide_emptyパラメータをfalseに設定し、空のタームも取得対象にします。
  2. foreachループ: 取得したすべてのタームに対して処理を実行し、各タームのIDに応じてメタデータを追加します。
  3. update_term_meta(): 各タームのIDを指定し、複数のメタデータを設定します。

    ここでは、swell_term_meta_ttlpostopswell_term_meta_imageに特定の画像URLを設定しています。

難易度 

基本的なPHPの知識とWordPressのターム関連関数を理解しているとスムーズに実装できますが、メタデータやカスタムタクソノミーの概念に慣れていない場合にはやや難易度が上がります。また、関数を一時的に実行するためのフックの設定や実行の確認が必要です。

使用しているタグ

  • get_terms()
  • update_term_meta()

実行後の注意点

このコードは実行が完了したら remove_action('init', 'update_all_wp_tag_terms_meta'); を追加して削除するか、コード自体を消去してください。

Q&A

画像URLをタームに応じて動的に設定することはできますか?

はい、画像URLをタームごとに動的に設定することも可能です。各タームのスラッグや名前を使用して、異なる画像URLを生成できます。

フックを使用しないで一度だけ実行する方法はありますか?

フックを一時的に使用し、処理完了後にコードをコメントアウトするか、デバッグ環境で一度だけ実行することで対応できます。

まとめ

WordPressでタームのメタデータを一括で登録する方法について紹介しました。このカスタマイズにより、メタデータの登録や更新が効率的に行えます。大量のタームや特定のデータが必要な場合、非常に役立ちます。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

WordPress Love! 休日はほぼWordPress仲間と一緒に勉強会や写真を撮りに行っています。現在育児中のため、オフが多いです(>△<<<)

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次