以正确的方式修改media-template.php文件?

时间:2014-01-23 作者:Michael Ruta

这个[gallery] shortcode接受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> 到那个列表。不编辑核心文件的最佳方式是什么?我在想某种过滤器,虽然我对它们不太熟悉。

1 个回复
SO网友:MikeNGarrett

你现在处境很艰难。

据我所知,你可以做几件事。他们俩都有点狡猾。

Recommended

我建议使用do_action(\'print_media_templates\') 在该文件的底部。这并不完美,但您可以在此处添加一个附加字段,以处理您想要添加的响应方面。

Possible, but not recommended

另一个选项是实际修改正在中设置的操作/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\' );
然后必须创建一个名为custom_print_media_templates() 这反映了wp-includes/media-template.php. 这里的问题是,此文件对WordPress core的任何更改都需要复制到您的文件中。这就是为什么我不推荐这条路。

结束

相关推荐

How to Find a Gallery's ID

你能告诉我怎么找到厨房的身份证吗?我们可以在CSS样式中使用这个ID吗?如果没有,我们如何以不同的风格设计两个不同的画廊?(老实说,我不确定这是否可能,但我希望!)