预览缩略图下方美丽的替换按钮刺痛了我的眼睛,我想要他,他是我的Chuck Norris!
“查克·诺里斯(ChuckNorris)不会用键盘编程。他会一直盯着电脑,直到它按自己的意愿运行”(src)
对于我们这些需要键盘编程的人来说,有一种方法可以在.image img
选择器(如果缺少):
我们将
ImageDetails
媒体查看并覆盖
resetFocus()
方法:
add_action( \'print_media_templates\', function() { ?>
<script>
jQuery(document).ready( function( $ ) {
wp.media.view.ImageDetails = wp.media.view.ImageDetails.extend({
resetFocus: function() {
this.$( \'.link-to-custom\' ).blur();
this.$( \'.embed-media-settings\' ).scrollTop( 0 );
// Inject Replace button if it\'s missing:
if( ! this.$(\'.replace-attachment\' ).length ) {
this.$( \'<div class="actions"> <input type="button" class="replace-attachment button my-theme" value="Replace" /></div>\' ).insertAfter(\'.image img\');
}
}
});
});
</script>
<?php } );
我们还可以覆盖
initialize()
方法并钩住
post-render
事件,如问题中所述
here 作者:Druzion。
以下是该问题的有效修改版本:
add_action( \'print_media_templates\', function() { ?>
<script>
jQuery(document).ready( function( $ ) {
wp.media.view.ImageDetails = wp.media.view.ImageDetails.extend({
initialize: function() {
this.on( \'post-render\', this.add_settings );
},
add_settings: function() {
// Inject Replace button if it\'s missing:
if( ! this.$(\'.replace-attachment\' ).length ) {
this.$(\'.image\').append( \'<div class="actions"><input type="button" class="replace-attachment button my-theme" value="Replace" /></div>\');
}
}
});
})
</script>
<?php } );
请注意
this.$
使用而不是
$
.
类似地,我们可以覆盖render()
方法,就像我玩的here.
另一种方法是使用输出缓冲和子字符串替换来替换部分默认模板,就像@bonger所做的那样here.
还要注意@Dave Romsey提到的替换按钮使用中的javascript错误