WordPressで「添付ファイルの表示設定」のプルダウンから特定の項目をCSSで消す:メモ

悩み
悩み

試したらできたのでメモ書きです。

テーマは管理画面の表示設定項目をCSSで非表示にすると、いうものです。

実現したいこと

既に書いていますが、実現したいことは以下の通り。

  • メディア挿入時の「添付ファイルの表示設定」にある「配置」や「リンク先」のプルダウンから、特定の項目だけを消す
  • CSSを使う

この件を検索すると、恐らく以下の記事が初出と思われる情報が多くみつかります(初出でなければごめんなさい)。

この方法がだめとかそういうことではないのですが、CSSでもできるのではと試した次第です。

サンプルコード 旧エディタ版

※ 旧エディタとはグーテンベルグ導入前のエディタを指しています。

functions.phpに以下の記述を行います。

管理画面専用のスタイルシートを読み込ませている場合は、直接その専用スタイルシートに記述を追加するだけで良いでしょう。


function my_admin_css() {
  //「リンク先」のプルダウンから「添付ファイルのURL」だけ消す場合
  echo '<style>.attachment-display-settings option[value="post"] { display: none; }</style>';
}
add_action( 'admin_print_styles', 'my_admin_css' );

上記は以下のような構造に基づいています。


<select class="link-to" data-setting="link" data-user-setting="urlbutton">
<option value="none" selected="">なし</option>
<option value="file">メディアファイル</option>
<option value="post">添付ファイルのページ</option>
<option value="custom">カスタム URL </option>
</select>

単純な話で、開発者ツールなど(又はコアファイルのmedia-template.phpを参照)で該当箇所を特定するクラスやIDを見つけて、それに対してdisplay:none;を指定するだけです。

そのため「添付ファイルの表示設定」以外の箇所にも概ね使えるはずです。

サンプルコード グーテンベルグ対応版


function my_admin_css() {
  //「リンク先」のプルダウンから「添付ページ」だけ消す場合
  echo '<style>.components-select-control__input option[value="attachment"] { display: none; }</style>';
}
add_action( 'admin_print_styles', 'my_admin_css' );

構造は以下に基づきます。
IDは#inspector-select-control-1など変わる場合もあるため、とりあえずクラス名を手がかりにしています。


<select id="inspector-select-control-2" class="components-select-control__input">
<option value="none">なし</option>
<option value="media">メディアファイル</option>
<option value="attachment">添付ページ</option>
<option value="custom">カスタム URL</option>
</select></div></div>

結び

フックを使うなど正規の方法ではない(それがあれば良かったのですが見つからず)ので構造が変われば使えませんが、仮に変わっても指定対象を書き換えれば使えはするので、それなりの妥協案かなと思います。

0人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄