サポート » 使い方全般 » カスタムフィールドの使い方について

  • 解決済 nobita

    (@nobita)


    こんにちは、カスタムフィールドの使い方について教えてください。

    カスタムフィールドを使って、ヘッダに、スタイルを埋め込んでいます。

    こういうやり方だと、body内で、the_meta();を使うと、スタイル指定まで、書き出してしまいます。

    特定のカスタムフィールドを、はじいて表示させないようにしたいと思っています。

    (現在は、CSSだけですが、ヘッダ内で使うカスタムフィールドの数は、css javascript Metaエレメント用 3個のフィールドを使いたいと思っています。この3個以外は、すべてbodyの表示用に使う予定です。)

    どのようにしたらいいのか教えてください。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • the_meta() が出力するリストでは、キー毎に the_meta_key フックが適用されますので、特定のキーの場合は空の値を返すようなフィルタ関数を作成すれば OK です。
    例えば以下のようなコードをお使いのテーマの functions.php に追加してみてください。

    <?php
    function filter_explode_meta_keys( $content, $key ) {
        $explode_keys = array( 'CSS', 'JavaScript', 'Meta' ); // 除外したいキーを設定
        if ( in_array( $key, $explode_keys ) ) return;
        else return $content;
    }
    add_filter( 'the_meta_key', 'filter_explode_meta_keys', null, 2 );
    ?>
    トピック投稿者 nobita

    (@nobita)

    mizubeさん、教えていただきありがとうございます。

    関数まで作っていただき、恐縮です。

    提示していただいた関数について、よろしければ、教えてください。
    …お手数おかけします。

    add_filterのプライオリティの値が nullにしてありますが、
    私は、整数しか指定できないのかなと思い込んでいたのですが、nullは10と同じですか?

    フィルタ関数についてはご存知なのですね。 nobita さんのご指摘通り、 priority は省略時、デフォルトが 10 となりますので、 null を渡した時にも 10 であるのと同じ結果になります。

    今回提示させて頂いたフィルタ関数では、priority の次の引数で受け取る引数の数を指定しなければなりませんでした。 add_filter() 引数の順番上、 priority を省略することが出来ないのですが、ここでは特に priority の値を意識したくなかったので敢えて null を渡すようにしてみました。

    ですが本来 null を渡すことが適切かどうかについては、分かりません:-P もしかするとやってはいけないことなのかもしれません。どうなんでしょう……。 null が気になるようでしたら 10 に書き換えてください。

    なんだかややこしくしてしまったようで、ごめんなさい。

    トピック投稿者 nobita

    (@nobita)

    mizubeさん ありがとうございます。

    mizubeさんの回答が、明快だったので、興味で聞いてしまいました。

    未熟なものの質問に付き合っていただき、ありがとうございます。

    とても、参考になりました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタムフィールドの使い方について」には新たに返信することはできません。