試したらできたのでメモ書きです。
テーマは管理画面の表示設定項目を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への投稿など他サービスとの連動は一切ありません。