আপনি বৈধ শিশু হিসাবে যা কনফিগার করেছেন তা নির্বিশেষে, ওয়ার্ডপ্রেস খুব সহজেই একটি অনন্য উপায়ে পি ট্যাগ পরিচালনা করে পাশাপাশি লাইন ব্রেকগুলি পরিচালনা করে। আপনি সম্ভবত অবশেষে লক্ষ্য করবেন, যদি আপনি ইতিমধ্যে না পেয়ে থাকেন তবে পাঠ্য সম্পাদক থেকে ভিজ্যুয়াল সম্পাদকটিতে স্যুইচ করার সময় এবং পিছনে আপনার <p>
ট্যাগগুলি ছাঁটাই হয়ে যায়, সীমান্তে যা ঘটেছিল তার অনুরূপ। এটি হতে বাধা দেওয়ার উপায় <p>
ট্যাগগুলিকে একটি কাস্টম ক্লাস দেওয়া class
<p class="text">This p tag won't get removed"</p>
।
যদিও ↑ এটি your আপনার পি ট্যাগটি ছিনিয়ে নেওয়া থেকে বিরত রাখবে, তবুও এটি আপনার সমস্যার সমাধান করবে না যেহেতু সীমান্তে আপনার মার্কআপটি এখনও মিশে যায়। আপনি wpautop অক্ষম করতে পারে । যদি আপনি এটি করেন এবং বৈধ বাচ্চাদের মধ্যে পি অন্তর্ভুক্ত করেন, তবে এটি আপনার সমস্যা ঠিক করবে ।
বিকল্প 1: অটোপ অক্ষম করুন এবং কার্যকর শিশুদের সেট করুন
remove_filter( 'the_content', 'wpautop' );
add_filter('tiny_mce_before_init', 'modify_valid_children', 99);
function modify_valid_children($settings){
$settings['valid_children']="+a[div|p|ul|ol|li|h1|span|h2|h3|h4|h5|h5|h6]";
return $settings;
}
আমার আপনাকে সতর্ক করা উচিত যদিও দ্বিতীয়টি আপনি HTML সম্পাদক থেকে টিনিএমসিইতে ফিরে যান আপনার এইচটিএমএল ধ্বংস হয়ে যাবে। নীচের বিকল্প 2 হিসাবে নির্দিষ্ট পোস্ট প্রকারের জন্য পুরোপুরি TinyMCE কে অক্ষম করা একটি কর্মপরিকল্পনা ।
বিকল্প 2: অটো পি, টিনিএমসিই, এবং বৈধ শিশুদের সেট করুন অক্ষম করুন
remove_filter( 'the_content', 'wpautop' );
add_filter('tiny_mce_before_init', 'modify_valid_children', 99);
function modify_valid_children($settings){
$settings['valid_children']="+a[div|p|ul|ol|li|h1|span|h2|h3|h4|h5|h5|h6]";
return $settings;
}
add_filter('user_can_richedit', 'disable_wyswyg_to_preserve_my_markup');
function disable_wyswyg_to_preserve_my_markup( $default ){
if( get_post_type() === 'post') return false;
return $default;
}
যদিও বেশিরভাগ লোকেদের ক্ষেত্রে ↑ এই ↑ একটি বিকল্প হয় না।
সুতরাং অন্য কোন বিকল্প আছে? আমি যে কাজগুলি লক্ষ্য করেছি তার মধ্যে একটি ক্লাসের সাথে স্প্যান ট্যাগ ব্যবহার করা এবং আপনার HTML ট্যাগগুলির মধ্যে কোনও সাদা জায়গা নেই তা নিশ্চিত করা । আপনি যদি এটি করেন তবে আপনি উপরের বিকল্পটি ব্যবহার করতে পারেন এবং TinyMCE কে একসাথে অক্ষম করা এড়াতে পারেন। কেবল মনে রাখবেন স্প্যানটি সঠিকভাবে প্রদর্শন করতে আপনাকে আপনার স্টাইলশীটে কিছু সিএসএস যুক্ত করতে হবে।
বিকল্প 3: বিকল্প 1 + স্টাইলযুক্ত স্প্যান ট্যাগ
এইচটিএমএল
<a href="#"><img src="https://placehold.it/300x200?text=Don%27t+P+On+Me" alt="" /><span class="noautop">Some amazing descriptive text</span></a>
স্টাইলশিটে সিএসএস
.noautop {
display: block;
}
বিকল্প 4: মিডিয়া আপলোডার শর্টকোডে বিল্ট ইন ব্যবহার করুন
আমি প্রথমে এটি ভুলে গিয়েছিলাম, তবে [ক্যাপশন] শর্টকোডটি এর মতো দেখাবে:
[caption id="attachment_167" align="alignnone" width="169"]
<img class="size-medium wp-image-167" src="http://example.com/example.png" alt="" width="169" height="300" />
awesome caption
[/caption]
আউটপুটটি দেখতে এইরকম হবে:
<figure id="attachment_167" style="width: 169px" class="wp-caption alignnone">
<img class="size-medium wp-image-167" src="http://example.com/example.png" alt="" width="169" height="300" />
<figcaption class="wp-caption-text">Some amazing descriptive text</figcaption>
</figure>
আপনি যদি চিত্রের ট্যাগগুলি না চান তবে আপনি কাস্টম সামগ্রী শর্টকোডের মতো প্লাগইন ব্যবহার করতে পারেন যা আপনাকে এটি করতে দেয়:
[raw] <p>this content will not get filtered by wordpress</p> [/raw]
কেন আমি চাই যদিও সম্পাদক কাজ করতে পারেন না?
বিগত কয়েক বছর ধরে এটি ভালভাবে কাজ করার চেষ্টা করার জন্য আমি অগণিত ঘন্টা ব্যয় করেছি। মাঝে মাঝে আমি এমন একটি সমাধান নিয়ে আসব যা পুরোপুরি কার্যকর হয়, তবে তারপরে ওয়ার্ডপ্রেস এমন একটি আপডেটকে চাপ দেবে যা সমস্ত কিছু আবার মিস করে। এটির মতো সম্পূর্ণরূপে কাজ করার জন্য আমি খুঁজে পেয়েছি এমন একমাত্র সমাধান, আমাকে আমার সেরা উত্তরের দিকে নিয়ে যায়।
বিকল্প 5: সংরক্ষিত এইচটিএমএল সম্পাদক মার্কআপ প্লাস
তাই নিজেকে মাথা ব্যথা বাঁচান এবং এই সঙ্গে যান। ডিফল্টরূপে, সংরক্ষিত এইচটিএমএল সম্পাদক মার্কআপ প্লাস কেবলমাত্র নতুন পৃষ্ঠাগুলিকে প্রভাবিত করে। আপনি যদি ইতিমধ্যে তৈরি পৃষ্ঠাগুলি পরিবর্তন করতে চান তবে আপনাকে www.example.com/wp-admin/options-writing.php এ গিয়ে প্লাগইন সেটিংস সম্পাদনা করতে হবে। আপনি ডিফল্ট নিউলাইন আচরণটিও পরিবর্তন করতে সক্ষম হবেন।
দ্রষ্টব্য: আপনি যদি এটি ব্যবহার করার সিদ্ধান্ত নেন তবে নিশ্চিত করুন যে কোনও নতুন ওয়ার্ডপ্রেস আপডেট চালু হলে আপনি সমর্থন থ্রেডটি পরীক্ষা করেছেন। মাঝেমধ্যে, কোনও পরিবর্তন জিনিসগুলিকে গোলমাল করে দেয় তাই প্লাগইনটি নতুন সংস্করণে কাজ করে তা নিশ্চিত করা ভাল।
অতিরিক্ত ক্রেডিট: আপনার সমস্যার ডিবাগিং / অন্যান্য টিনিএমসিই বিকল্পগুলি সম্পাদনা করা
আপনি যদি নিজের টিনিএমসিই কনফিগারেশনগুলি নিজে নিজে পরিদর্শন করতে এবং সম্পাদনা করতে চান , যেমন আপনি ফিল্টারগুলি করেন, আপনি উন্নত টিনিএমসিই কনফিগারেশন ইনস্টল করতে পারেন । এটি আপনাকে সমস্ত কনফিগার করা TinyMCE বিকল্প দেখতে এবং একটি সাধারণ ইন্টারফেস থেকে এডিট করতে দেয়। আপনি ফিল্টারগুলির মতো নতুন বিকল্পগুলিও যুক্ত করতে পারেন। এটি বিষয়গুলি বুঝতে সম্পূর্ণ সহজ করে তোলে।
উদাহরণস্বরূপ, আমার কাছে এটি এবং সংরক্ষিত এইচটিএমএল সম্পাদক মার্কআপ প্লাস উভয়ই রয়েছে। নীচের স্ক্রিনশটটি অ্যাডভান্সড টিনিএমসিই কনফিগারেশন প্রশাসক পৃষ্ঠাটির। স্ক্রিনশটটি আসলে যা আছে তার 90% কেটে দিচ্ছে, আপনি দেখতে পাচ্ছেন এটি সম্পাদনা করার জন্য বৈধ বাচ্চাদের দেখায় এবং কোনটি সংরক্ষিত এইচটিএমএল সম্পাদক মার্কআপ প্লাস যুক্ত করেছে।
এটি কেবল আপনার সম্পাদককে সম্পূর্ণরূপে কাস্টমাইজ করার নয়, কী চলছে তাও দেখার একটি সহায়ক উপায়। এমনকি আপনার সমস্যাটি কী কারণে সৃষ্টি হয়েছিল তা আপনি নির্ধারণ করতেও সক্ষম হতে পারেন। সংরক্ষিত এইচটিএমএল সম্পাদক মার্কআপ সক্ষম করার সময় আমি নিজেই প্যারামিটারগুলি অনুসন্ধান করার পরে আমি কিছু অতিরিক্ত বিকল্প দেখেছি যা কাস্টম ফিল্টারে যুক্ত করা যেতে পারে।
function fix_tiny_mce_before_init( $in ) {
// You can actually debug this without actually needing Advanced Tinymce Config enabled:
// print_r( $in );
// exit();
$in['valid_children']="+a[div|p|ul|ol|li|h1|span|h2|h3|h4|h5|h5|h6]";
$in[ 'force_p_newlines' ] = FALSE;
$in[ 'remove_linebreaks' ] = FALSE;
$in[ 'force_br_newlines' ] = FALSE;
$in[ 'remove_trailing_nbsp' ] = FALSE;
$in[ 'apply_source_formatting' ] = FALSE;
$in[ 'convert_newlines_to_brs' ] = FALSE;
$in[ 'verify_html' ] = FALSE;
$in[ 'remove_redundant_brs' ] = FALSE;
$in[ 'validate_children' ] = FALSE;
$in[ 'forced_root_block' ]= FALSE;
return $in;
}
add_filter( 'tiny_mce_before_init', 'fix_tiny_mce_before_init' );
দুর্ভাগ্যক্রমে এই পদ্ধতিটি কার্যকর হয়নি। পোস্টটি আপডেট করার সময় এবং / অথবা সম্পাদকদের মধ্যে স্যুইচ করার সময় সম্ভবত কিছু রেইজেক্স বা জাভাস্ক্রিপ্ট রয়েছে is আপনি যদি সংরক্ষিত এইচটিএমএল এডিটর সোর্স কোডটি একবার দেখে থাকেন তবে দেখতে পাবেন এটি অ্যাডমিন সাইডে কিছু জাভাস্ক্রিপ্ট কাজ করে তাই আমার শেষ পরামর্শটি আপনি যদি থিমটিতে এই কার্যকারিতা যুক্ত করতে চান তবে প্লাগইন কীভাবে কাজ করে তা পরীক্ষা করা উচিত ।
যাইহোক, যে কেউ আমার উত্তরে এটি অর্জন করেছে তার জন্য দুঃখিত। ভেবেছিলাম আমি ওয়ার্ডপ্রেস সম্পাদকের সাথে ডিল করার নিজস্ব অভিজ্ঞতাগুলি ভাগ করব, তাই অন্যরা আশা করি যে আমার মতো করে এটি বের করার চেষ্টা করতে কয়েক ঘন্টা ব্যয় করতে হবে না!