web-dev-qa-db-ja.com

Media-template.phpファイルを修正する、正しい方法は?

[gallery]ショートコードは、columns='0'を属性として受け入れ、ギャラリーアイテム間のHTMLに改行を挿入しません。ただし、このオプションはギャラリー設定インターフェイスでは使用できません(ページ/投稿を編集するときの「メディアの追加」ポップアップ)。

私はwp-includes\media-template.phpの396行目から406行目にコードを配置しました。

<label class="setting">
    <span><?php _e('Columns'); ?></span>
    <select class="columns" name="columns"
        data-setting="columns">
        <?php for ( $i = 1; $i <= 9; $i++ ) : ?>
            <option value="<?php echo esc_attr( $i ); ?>" <?php selected( $i, 3 ); ?>>
                <?php echo esc_html( $i ); ?>
            </option>
        <?php endfor; ?>
    </select>
</label>

コアファイルを直接編集したくはありませんが、そのリストに<option value="0">Responsive</option>を追加したいと思います。コアファイルを編集せずにこれを行うための最善の方法は何ですか?私はそれらにはあまり慣れていないが、私はある種のフィルターを考えていた。

5
Michael Ruta

あなたはここでかなり良いピクルスに入っています。

私が言うことができる限りあなたがすることができる2つのことがあります。どちらも少しトリッキーです。

推奨

私がお勧めするのは、そのファイルの最後にあるdo_action('print_media_templates')を利用することです。完璧ではありませんが、ここで追加のフィールドを追加して、追加したいレスポンシブな面の面倒を見ることができます。

可能だが推奨されない

別の選択肢は、/wp-includes/media.php行2022-2024で設定されているアクションを実際に修正することです。これをチェックしてください。

function custom_print_media_templates() {
  remove_action( 'admin_footer', 'wp_print_media_templates' );
  remove_action( 'wp_footer', 'wp_print_media_templates' );
  remove_action( 'customize_controls_print_footer_scripts', 'wp_print_media_templates' );

  add_action( 'admin_footer', 'custom_print_media_templates' );
  add_action( 'wp_footer', 'custom_print_media_templates' );
  add_action( 'customize_controls_print_footer_scripts', 'custom_print_media_templates' );
}
add_action( 'wp_enqueue_media', 'custom_print_media_templates' );

それからwp-includes/media-template.phpのものを反映するcustom_print_media_templates()と呼ばれる関数を作成しなければならないでしょう。ここでの問題は、このファイルに対するWordPressコアへのどんな変更もあなたのファイルに複製される必要があるということです。だからこそ私はこの道をお勧めしません。

2
MikeNGarrett