Skip to content

【WordPress】自分で定義したカスタムフィールド項目を、デフォルトでは非表示にする方法

備忘録。

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です