ডায়ালগটি এইচটিএমএল থেকে এসেছে WP_Editors::wp_link_dialog()
তবে সেখানে কোনও হুক নেই।
আমরা পরিবর্তে লিঙ্ক ডায়ালগটিতে কাস্টম এইচটিএমএল যুক্ত করতে jQuery ব্যবহার করতে পারি এবং উদাহরণস্বরূপ ওভাররাইড করার চেষ্টা করতে wpLink.getAttrs()
পারি, কারণ এটি খুব সংক্ষিপ্ত ;-)
ডেমো উদাহরণ:
jQuery( document ).ready( function( $ ) {
$('#link-options').append(
'<div>
<label><span>Link Class</span>
<select name="wpse-link-class" id="wpse_link_class">
<option value="normal">normal</option>
<option value="lightbox">lightbox</option>
</select>
</label>
</div>' );
wpLink.getAttrs = function() {
wpLink.correctURL();
return {
class: $( '#wpse_link_class' ).val(),
href: $.trim( $( '#wp-link-url' ).val() ),
target: $( '#wp-link-target' ).prop( 'checked' ) ? '_blank' : ''
};
}
});
আমি কেবল একটি দ্রুত পরীক্ষা করেছি এবং এটি কাজ করছে বলে মনে হচ্ছে তবে লিঙ্কগুলি আপডেট করার সময় আরও পরীক্ষা এবং সামঞ্জস্য প্রয়োজন। এখানে একটি পুরানো হ্যাক যা আমি রিফ্রেশের প্রয়োজন হতে পারে।
হালনাগাদ
দেখে মনে হচ্ছে আপনি rel="nofollow"
লিঙ্ক কথোপকথনে বিকল্পটি যুক্ত করতে চান , তাই আসুন সেই ক্ষেত্রে উপরের পদ্ধতির আপডেট করুন:
আমরা এর rel
সাথে লিঙ্কের বৈশিষ্ট্য যুক্ত করব:
/**
* Modify link attributes
*/
wpLink.getAttrs = function() {
wpLink.correctURL();
return {
rel: $( '#wpse-rel-no-follow' ).prop( 'checked' ) ? 'nofollow' : '',
href: $.trim( $( '#wp-link-url' ).val() ),
target: $( '#wp-link-target' ).prop( 'checked' ) ? '_blank' : ''
};
}
যদি rel
বৈশিষ্ট্যটি খালি থাকে তবে তা সম্পাদকের লিঙ্ক থেকে স্বয়ংক্রিয়ভাবে সরানো হবে।
তারপরে আমরা wplink-open
লিঙ্ক ডায়ালগটি খোলার পরে যে ইভেন্টটি আগুন জ্বলতে পারে তার মধ্যে ookুকতে পারি । এখানে আমরা আমাদের কাস্টম এইচটিএমএল ইনজেক্ট করতে পারি এবং বর্তমান লিঙ্ক নির্বাচন অনুযায়ী এটি আপডেট করতে পারি:
$(document).on( 'wplink-open', function( wrap ) {
// Custom HTML added to the link dialog
if( $('#wpse-rel-no-follow').length < 1 )
$('#link-options').append( '<div> <label><span></span> <input type="checkbox" id="wpse-rel-no-follow"/> No Follow Link</label></div>');
// Get the current link selection:
var _node = wpse_getLink();
if( _node ) {
// Fetch the rel attribute
var _rel = $( _node ).attr( 'rel' );
// Update the checkbox
$('#wpse-rel-no-follow').prop( 'checked', 'nofollow' === _rel );
}
});
getLink()
নির্বাচিত লিঙ্কটির এইচটিএমএল পাওয়ার জন্য আমরা মূল ফাংশনের উপর ভিত্তি করে নিম্নলিখিত সহায়ক সহায়ক ফাংশনটি ব্যবহার করি :
function wpse_getLink() {
var _ed = window.tinymce.get( window.wpActiveEditor );
if ( _ed && ! _ed.isHidden() ) {
return _ed.dom.getParent( _ed.selection.getNode(), 'a[href]' );
}
return null;
}
এখানে ফলাফল:
নিম্নলিখিত HTML সহ:
PS: এটি আরও পরীক্ষা করা যেতে পারে এবং অনুবাদগুলি সমর্থন করার জন্যও বাড়ানো যেতে পারে