隠されてるカスタムフィールドを一覧に再表示する方法

公開日:2023(令和5)年3月29日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

長いことWordPressでサイト作りをしているのに、つい最近まで、カスタムフィールド名(メタキー)に「_(アンダーバー)」を付けるとカスタムフィールド一覧から非表示にできることを知った私。

隠しフィールド(隠しカスタムフィールド)などというようですが、プラグインなどで、投稿や固定ページ個別の設定などを持たせるためのメタボックス(入力窓)を用意して、nonce検証を使ってメタボックス以外からの編集を受け付けないようにする時に利用されるようです。

これを知ったのはまさにnonce検証の実装について学んだ時でした(nonceについては以下で詳しく語ってます)。

編集できないようにしたんだから、表示することもないでしょ!というわけですね。

そうなるともう一つ問題が..それは何かで表示させたいときにどうするか?ということです。

まあ、編集できないから表示することはない(なんのこっちゃ)のですが、開発などしていて、非表示にしたカスタムフィールドにきちんと値が保存されるか?などを知るときに、いちいちデータベース内を確認する必要がなくなるんです。

従って通常に使用する分には知らなくていい知識です(なんのこっちゃ)。

まあ一応プラグイン作ったり、テーマカスタマイズをしている一人として、再表示の方法は知っておいた方がいいと思って調べたら、コードを公開してくださってる方がいらっしゃいました。

[WordPress]隠しカスタムフィールドを表示する

これによると、以下のコードで簡単に再表示できるそうです。

add_filter( 'is_protected_meta', '__return_false' );

is_protected_meta」というフックがあるんですね。あまり使うことはないかも知れないですけど、また一つ賢くなりました(笑)。

まあ、必要な場合に上記のコードを入れれば済む話なのですが、前々から、この1行でフィルターフックを完結させるコード、不思議に思ってたんです。

普通無名関数にするか、ユーザー定義関数を作って、それに対してどうする?ってするのがフィルターフックだと思っていたので、本当に不思議でした。

答えは..「__return_false」にありました。

これを指定すると、関数の中の「return:false;」と同じことをするんです。

なので、上記コードを無理やりユーザー定義関数にして動作するようにすると、以下のようなコードになります。

function sample_redisplay_hidden_field() {
return false;
}
add_filter( 'is_protected_meta','sample_redisplay_hidden_field');

たった1行で済むところをわざわざ4行にせんでも..と思うかもしれないけど、個人的にはこちらの方がしっくりくる..かな?

これでもう1つ勉強になりました(笑)。

, ,
Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
作者スラグを任意の文字列へ変更できるようにする方法(プラグインなし)