ホームページ > CMS チュートリアル > &#&プレス > WordPress Term MetaおよびWP_Termの紹介

WordPress Term MetaおよびWP_Termの紹介

Jennifer Aniston
リリース: 2025-02-15 09:45:11
オリジナル
138 人が閲覧しました

WordPress Term MetaおよびWP_Termの紹介

キーテイクアウト

  • WordPress 4.4であるため、用語はオブジェクトになり、メタデータの追加、削除、更新が容易になりました。これに先立ち、分類法のメタデータを保存することは、WP_OPTIONSテーブル内のフィールドとしてメタデータを保存する必要がある複雑なプロセスでした。
  • Term Meta、add_term_meta、update_term_meta、およびdelete_term_meta関数を使用すると使用されます。これらの機能は、新しいUI要素と組み合わせて、用語の新しいメタデータの保存と更新を可能にします。
  • 用語メタデータを使用して用語を拡張し、一意の機能を提供できます。例としては、用語の上部にバナー画像を追加するか、メタデータを提供して、表示されている用語に基づいて新しいテンプレートファイルをロードするなど、条件付きの用語を異なる方法で表示することが含まれます。
  • WordPressのWP_TERMクラスは、用語のオブジェクト指向の表現です。タームメタを含む用語データを取得および操作する方法を提供します。このクラスは、特定の用語のクラスのインスタンスを作成し、クラスが提供するメソッドを使用して用語のメタデータを取得、追加、更新、または削除することにより、用語メタの操作に使用できます。
  • WordPressでは、投稿、ページ、その他のカスタムコンテンツタイプにメタデータを簡単に保存できますが、分類法で使用するためにメタデータを保存していたため、以前は過度に複雑なプロセスでした(ここで以前の記事も書きました!)。
  • すべてを機能させるには、データの各メタデータをwp_optionsテーブル内のフィールドとして保存する必要があります。用語またはいくつかのカスタマイズされた分類法。
  • ただし、WordPress 4.4以降以来、用語はオブジェクトであり、投稿、ページ、カスタムコンテンツタイプと同じになりました。この変更により、メタデータの追加、削除、更新がはるかに簡単になります。
用語メタ

のバックストーリー

コミュニティは、WordPress 2.8に戻って以来、用語メタデータを制御する簡単な方法を求めています。それは遅いプロセスでしたが、最終的に用語はクラス構造を使用するためにゼロから再設計されました。これに加えて、WordPress 4.4のいくつかの異なる変更は、分類法(「タグ」、「カテゴリ」、カスタムなど)の用語が独自のメタを簡単に割り当てることができることを意味します。

メタデータ操作古い方法

WordPress 4.4の前に、用語のメタデータを簡単に保存する明確な方法がなかったため、これはその構築方法からの用語に固有の制限でした。分類法または用語を延長している場合は、update_optionを使用してサイトオプションとしてデータを直接保存する必要があります。 これは理想的ではありませんでした(オプションテーブルを乱雑にしたため)。

以前に分類法を拡張することについて書いたのですが、その基本はメタデータを保存する準備ができていたとき、あなたはこのように見える関数を呼び出すことでした:

//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');
ログイン後にコピー
ログイン後にコピー

上記の例では、create_categoryフックに添付された関数(新しいカテゴリ用語を作成するとトリガー)を実行します。これは私たちの価値を探し、消毒後にオプションとして保存します。これは機能しますが、それほどきれいではありません。

用語メタ

の追加、更新、削除

Term Metaを使用するには、add_term_meta、update_term_meta、delete_term_meta関数を使用します。これらの機能により、新しいUI要素と組み合わせると、用語の新しいメタデータを保存および更新できます。

用語メタ

を追加します

用語にメタデータを追加するには、add_term_meta関数が含まれます。オプションの4番目のパラメーターを指定する必要があります。

    $ TERM_ID - このメタデータを保存したい用語のID
  • $ meta_key - メタデータのキー名。これは、データを参照する方法
  • です
  • $ meta_value - データ自体(消毒することを忘れないでください)
  • $ユニーク(オプション) - メタデータキーが一意である必要がある場合。デフォルトでは、これはfalseに設定されており、別のキーが同じ名前を持っている場合、関数がそれをオーバーライドすることを意味します。ユニークさを確保するために、これを真に設定します。
例として、このカテゴリの分類法の各用語について、このカテゴリに割り当てられている投稿の数に基づいて、新しいメタデータを割り当てたいと想像してください。 WordPress 4.4を使用すると、すべての用語をループして、この新しいメタデータを保存できます(テーマまたはプラグインで使用するために)。

function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');
ログイン後にコピー
ログイン後にコピー
読み取り用語メタ

get_term_meta関数を使用して、保存された用語メタを読むことができます。この関数は、投稿からメタデータを取得するために使用されるget_post_meta関数と同様の方法で機能します。 この関数を使用して、1つの必須パラメーターを指定する必要があります。オプションの2つのパラメーターが利用可能です。

$ TERM_ID -
    からメタデータを取得する用語のID
  • $ key(オプション) - 返品する単一の指定されたキー。指定されていない場合、すべてのメタデータが返されます
  • $ single(オプション) - 単一の値が返されるか、キーまたは値のペアが返される場合。デフォルトは単一の値です。
  • これが便利であると思われる別のシナリオを見てみましょう。
カテゴリの分類法の各用語に対して既に用語メタが保存されている状況を考えてみましょう。この保存されたデータには、用語を表示するときに表示する必要がある画像へのURLが含まれています。この画像を用語の説明またはタイトルの下にバナーとして表示しますが、投稿のリストの上に表示します。

category.phpまたは他の子テーマテンプレートファイル内で、用語データが表示される機能を変更できます。

//given a term, collect its saved image to be displayed
function display_term_meta_image($term_id, $term_taxonomy){

    //get supplied term
    $term = get_term($term_id, $term_taxonomy); 
    if($term){

        $term_image_id = get_term_meta($term_id, 'term_image_id', true);
        if($term_image_id){
            //get the medium image size for display
            $term_image = wp_get_attachment_image_src($term_image_id, 'medium', false);
            echo '<img . $term_image[0] . '" title="' . $term->name . ' image"/>';
        }  
    }
}
ログイン後にコピー
私の状況では、214の状況では、category.phpファイルを編集しています。説明情報の表示の直後に新しい関数を呼び出します。

これは、このような説明の下に写真を表示します:

WordPress Term MetaおよびWP_Termの紹介

タームメタ

の削除

投稿の場合と同じように、用語メタデータを削除できます。 delete_term_meta関数を使用する場合、必要に応じて3番目のオプションで2つの必須パラメーターを提供する必要があります。

    $ TERM_ID - 作業する用語のID。
  • $ Meta_Key - 用語から削除されるメタキー。
  • $ meta_value(オプション) - 値がこの値と一致する場合のみメタデータを削除します。これを使用して、このデータが設定値と一致するときにのみ削除したい場合。
  • もう一度、これを使用するシナリオを見てみましょう。大きなプロジェクトの中間を想像してみてください。また、各カテゴリの用語にいくつかのメタデータを保存しています。このデータの一部は不要になったことがわかったので、データベースを乱雑にしないように、おそらくクリアする必要があります。

この関数は、$ Aldocation_term_keys変数で指定されていない追加のメタデータを通過して削除し、データベース内の無駄なスペースを削減します(不要になった数十メタデータエントリがある場合に役立ちます)。 > WordPress 4.3以降との逆方向の互換性

//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');
ログイン後にコピー
ログイン後にコピー

これらの新しいメタ関数を前進させることに本当に熱心であるが、古いバージョンで自分自身をカバーしたい場合は、すべての機能を確保するための条件付き機能を作成できます。

function_existsを呼び出して、新しいadd_term_meta関数が定義されていることを確認します。これは、WordPress 4.4以降にのみ当てはまります。サポートがある場合は、単純なadd_term_meta関数を使用して、メタデータを用語に割り当てます。

サポートがない場合は、用語オブジェクト自体を(用語IDで渡された)を取得し、それから$ Term_Taxonomyデータを抽出し、それを使用して最終的なキー値を構築します。オプションテーブルに保存しているため、キーが一意であることを確認する必要があります。これは、分類名、用語ID、および最終的な用語キーを1つの変数に追加することで行います。 キーが長さ64文字を超えていないことを確認する必要があります。これをすべて完了したら、add_option関数を呼び出して価値を保存できます。

ご覧のとおり、これは少し長くなりますが、古いWordPressバージョンと新しいWordPressバージョンをサポートするための柔軟性が追加されます。

それをすべて包みます
function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');
ログイン後にコピー
ログイン後にコピー

これらの新しいメタ関数を使用すると、用語をより簡単に拡張して一意の機能を提供できるようになります。たとえば、用語の一番上にバナー画像を追加したり、メタデータを提供して、条件付きで条件付きで異なる方法で表示できる場合があります(表示されている用語に基づいて新しいテンプレートファイルをロードするなど)。 新しい用語メタ関数の柔軟性と容易さにより、今日の新しいプロジェクトでこれを実装し始めることができます!

WordPress Term Meta

に関するよくある質問(FAQ)

WordPress Term Metaとは?

WordPress Term Metaは、WordPressサイトに用語のカスタムメタデータを保存できる機能です。このメタデータは、用語に関連付けたい追加の説明、画像、色、またはその他の情報から何でもかまいません。これは、Webサイトの機能とユーザーエクスペリエンスを強化できる強力なツールです。

WordPressに用語メタを追加するにはどうすればよいですか? ) 関数。この関数には、必要な3つのパラメーターが必要です:用語ID、Metaキー(メタフィールドの名前)、およびメタ値。オプションで、メタキーが一意であるかどうかを指定することもできます。 。この関数には、IDという用語と取得するメタフィールドのキーが必要です。指定された用語のメタフィールドの値を返します。

WordPressでTerm Metaを更新できますか?この関数には、IDという用語、Metaキー、および新しいメタ値が必要です。用語にメタキーが存在しない場合、追加されます。 。この関数には、IDという用語とMetaキーが必要です。指定された用語の指定されたメタフィールドを削除します。タームメタを含む用語データを取得および操作する方法を提供します。

wp_termクラスを使用して用語メタと連携するにはどうすればよいですか?特定の用語のクラスのインスタンスを作成し、クラスが提供するメソッドを使用して、用語のメタデータを取得、追加、更新、または削除します。 wordpress?

WordPressの用語メタは、カテゴリやタグに追加情報を追加する、用語のカスタムフィールドの作成、検索機能の強化など、さまざまな目的に使用できます。 WordPressのカスタム分類法で用語メタを使用できますか?

​​

はい、WordPressでカスタム分類法で用語メタを使用できます。メタ機能という用語は、カスタムのものを含む任意の分類法で動作します。

WordPressで用語メタを管理するのに役立つプラグインはありますか? WordPressでTerm Metaを管理します。これらのプラグインは、用語メタを追加、更新、削除するためのユーザーフレンドリーなインターフェイスを提供するため、コーディングに慣れていない人が簡単になります。

以上がWordPress Term MetaおよびWP_Termの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート