備忘録。
Custom Field Suiteを使ってカスタムフィールド項目を設けたけど、
デフォルトでは非表示にしておきたい場合のやりかた〜。
そうそう無いけど。
WordPress8年くらいいじってて今回初めてのケースだけど。
一応備忘録として残しておきますけど。
今回のやりたい例
【商品情報】と【お問い合わせ先】
といったカスタムフィールド項目を
Custom Field Suiteプラグインを使って
固定ページに表示するように設けたけど
商品情報を入れるページはあまり無いから
デフォルトでは非表示にしておきたいとき〜。
ググると、「カスタムフィールド」をデフォルトで非表示にするやり方はすぐわかりました。
参考にさせていただきました:
https://www.webantena.net/wordpress/functions-php-remove-post-metaboxes/
ありがとうございます(_. ._)”
しかし自分で作った固有のカスタムフィールドを非表示にするにはどうしたらええんじゃい
ということでゴニョゴニョしてみた結果、できました。
1、まずカスタムフィールドに割り当てられている名前を知る。
「スラッグ」を非表示にする場合だと
remove_meta_box(‘slugdiv’, ‘post’, ‘normal’);
というコードになります。
カスタムフィールド名が「product」だとしても、ここにそのまま入れても動作しません。
上記コードの「slugdiv」に当たる名前を探せばいいんじゃん、ということで
Googleデベロッパーツールを使い特定します。
スラッグの表示 / 非表示を切り替えるチェックボックスでは
<input class=”hide-postbox-tog” name=”slugdiv-hide” type=”checkbox” id=”slugdiv-hide” value=”slugdiv”>
というコードが使われてました。ということはこの value=”slugdiv”に当たる部分がわかればよいと。
今回非表示にしたい「商品情報」のチェックボックスのコードをチェックしてみたところ
<input class=”hide-postbox-tog” name=”cfs_input_24-hide” type=”checkbox” id=”cfs_input_24-hide” value=”cfs_input_24″>
というコードでした。
なので value=”cfs_input_24“
この赤文字部分を当てはめれば非表示が完成するはず。
2. function.phpにコード追加
function my_remove_meta_boxes() {
remove_meta_box('cfs_input_24', 'page', 'normal');
}
という一文を追加したところ
デフォルトで「商品情報」は非表示になりました。
めでたや。
もちろんすでに保存されてる・すでに表示されてる商品情報のあるページには効かないけど、
新規ページ作成の際には出てきません。
今回Custom Field Suiteでしたが、
とりあえずvalueがわかれば良いので他のカスタムフィールドのプラグインでも特定方法は同じと思いまーす。
Be First to Comment