Kullandığınız terimler biraz kafa karıştırıcı olsa bile, sorunun analizinde kesinlikle haklısınız. "Görüntünün bir örneği" diye bir şey yoktur: bir gönderiye görüntü ekledikten sonra, orijinal görüntü başlığını veya başlığını değiştirmek (örneğin Medya menüsü aracılığıyla) gönderiye eklenen görüntüyü değiştirmez. Sizi ikna etmek için "Metin" sekmesini tıklayın ve oluşturulan HTML koduna göz atın.
"Medya ekle" düğmesiyle resim eklediğinizde şunlar olur:
"Göndermeye Ekle" yi tıkladığınızda, <img>
seçtiğiniz boyuta bağlı olarak doğru kaynağa sahip etiket, alt metin olarak başlık ve varsa altyazı gibi bir miktar HTML kodu: etiket oluşturmak için Medya modundan veri alınır . Bu kod TinyMCE düzenleyicide doğru yere eklenir ("Metin" sekmesi aracılığıyla kontrol edin)
"Görsel" sekmesinde, görsel düzenleyici içindeki görüntüyü temsil etmek için bir "görünüm" oluşturulur. Bu görünüm görüntüyü ve iki düğmeyi görüntüler: düzenleme ve silme. Bu görünüm, HTML koduna dokunmadan görüntüyü yeniden boyutlandırmanıza ve diğer bazı parametreleri görsel olarak değiştirmenize olanak tanır.
Bu nedenle, bazı özel veriler eklemek istiyorsanız (herhangi bir ek mesajına bağlı olmadığı için özel alan olarak adlandırmayın), bu HTML koduna eklemeniz ve daha sonra bu verileri görsel olarak değiştirmeye izin vermek için görünümü değiştirmeniz gerekir. . Sorunuzu iyi anlarsam, resmi sayfada belirli bir şekilde konumlandıracak veriler eklemek istersiniz. Bunun için özel bir sınıf kullanabilirsiniz.
Oluşturulan HTML kodu şöyledir:
<img class="alignnone size-medium wp-image-10" src="http://myserver.com/wp-content/uploads/2014/08/opensource-300x259.gif" alt="opensource" width="300" height="259" />
Ayrıca, boyut açılır listesinde kodun aşağıdaki gibi görünmesini sağlayacak bir "duyarlı" seçeneğe sahip olmak istersiniz:
<img class="alignnone size-responsive wp-image-10" src="http://myserver.com/wp-content/uploads/2014/08/opensource-300x259.gif" alt="opensource" />
Bunu nasıl başaracağınız aşağıda açıklanmıştır: yayın düzenleme sayfasında yeni bir komut dosyasını sıralayacak bir eklenti oluşturun.
add_action( 'admin_enqueue_scripts', 'wpse16975_custom_image_view');
function wpse16975_custom_image_view($hook){
if($hook == 'post.php'){
wp_enqueue_script( 'custom_image_view', plugin_dir_url( __FILE__ ) . '/customView.js', array( 'media-views' ));
}
}
Ardından, customView.js şöyle görünmelidir:
(function($, _){
var media = wp.media;
var origImageDetails = media.view.ImageDetails;
media.view.ImageDetails = origImageDetails.extend({
initialize: function() {
origImageDetails.prototype.initialize.apply( this, arguments );
this.on( 'post-render', this.responsiveSize );
this.listenTo( this.model, 'change:size', this.setReponsiveSize );
this.initSize = this.model.get('size');
},
responsiveSize: function(){
// add a "Reponsive" option to the Size dropdown setting
var $opt = $(document.createElement('option')).attr('value', 'responsive').text('Responsive');
if(this.initSize == 'responsive') $opt.attr('selected', 'selected');
this.$('.embed-media-settings select.size').append($opt);
},
setReponsiveSize: function(){
// remove width and height
if(this.model.get('size') == 'responsive') this.controller.image.set({width:null, height:null}, {silent:true});
}
});
}(jQuery, _));
Ve işte sonuç: