এই পোস্টটি এই থ্রেড এবং এই থ্রেডে উত্থাপিত স্টাইলশীট এনকুইংয়ের পদ্ধতিগুলির চারপাশে সাম্প্রতিক পরিবর্তনের সাথে সম্পর্কিত কয়েকটি প্রশ্ন নিয়ে এসেছে ।
আমি যে সমস্যার মুখোমুখি হয়েছি সেগুলি একটি সাধারণ ব্যবহার-কেস দৃশ্যে উঠে এসেছে, একটি ব্যাপকভাবে ব্যবহৃত এবং ভালভাবে রক্ষণাবেক্ষণ করা মূল থিম ব্যবহার করে যা বিশেষত ডাব্লুপি 4.0.০ ইনস্টলের জন্য শিশু-থিম প্রস্তুত। আমার শিশু থিমের ফাংশন.এফপিতে কেবল কোডেক্সে বর্ণিতwp_enqueue_style
ফাংশন রয়েছে ।
দয়া করে নোট করুন যে নীচে রেফারেন্স কোডটি এই থিমের সাথে সুনির্দিষ্ট হলেও এর বেশিরভাগটি প্যারেন্ট থিম দ্বারা ব্যবহৃত বর্তমান কোডিং কনভেনশন ব্যবহার করে। অতিরিক্তভাবে, আমার উদ্বেগের ক্ষেত্রগুলি সম্ভবত বন্য অঞ্চলে প্রচুর সংখ্যক প্রতিষ্ঠিত পিতা-মাতার থিমগুলিতে নকলযোগ্য able এছাড়াও, উত্থাপিত প্রশ্নগুলি প্যারেন্ট থিমটি ব্যবহার না করেই সর্বজনীন স্তরে প্রযোজ্য।
সমস্যা 1: দ্বৈতকরণ
প্রস্তাবিত সেটআপ:
মূল থিম wp_enqueue_scripts
হুক ব্যবহার করে স্টাইল এবং স্ক্রিপ্টগুলি সজ্জিত করছে , প্রাসঙ্গিক অংশটি নীচে রয়েছে:
add_action('wp_enqueue_scripts', 'parent_theme_function_name');
function parent_theme_function_name() {
wp_register_style( 'avia-style' , $child_theme_url."/style.css", array(), '2', 'all' );
wp_enqueue_style( 'avia-base');
if($child_theme_url != $template_url) { wp_enqueue_style( 'avia-style'); }
}
আমার শিশু থিম functions.php
সাম্প্রতিক কোডেক্স পরিবর্তনের জন্য শৈলীর সজ্জিত করে:
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'dm-parent-style', get_template_directory_uri().'/style.css' );
}
রেফারেন্স কোড দ্বারা ব্যবহৃত নিম্নলিখিত আইডি নোট করুন:
id='dm-parent-style-css'
আমার সন্তানের থিম ফাংশন অনুসারে অভিভাবক থিমের স্টাইলশীটid='avia-style-css'
পিতা-মাতার থিম ফাংশন অনুসারে আমার শিশু থিমের স্টাইলশিটটিid='dm-child-style-css'
আমার শিশু থিমের স্টাইলশিটটি যেমন আমার শিশু থিম ফাংশন দ্বারা সজ্জিত que
ফলাফলগুলো:
প্রথম নজরে, <head
> নীচের ক্রমানুসারে প্রদর্শিত সমস্ত কিছুই ঠিকঠাক ছিল :
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
একটি প্লাগইন ইনস্টল করার পরে, এনকুই ক্রমটি এখন নীচে পরিবর্তিত হয়েছে:
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
<!-- Pesky plugin styles -->
শেষ পর্যন্ত, আমার যে কোনও প্লাগইন পরে লোড করার জন্য আমার চাইল্ড থিমের সিএসএস দরকার, তাই আমাকে আমার চাইল্ড থিমের ক্রিয়ায় একটি অগ্রাধিকার নম্বর যুক্ত করতে বাধ্য করা হয়েছিল (অগ্রাধিকার নম্বর সম্পর্কে পূর্ববর্তী আলোচনা দেখুন) ।
কারণ আমার ফাংশনটি কেবল পিতামাতার থিমের সিএসএস তৈরি করে, ফলস্বরূপ এখন পিতামাতার থিম সিএসএস শেষের দিকে চলে যায়, আমার চাইল্ড থিমের সিএসএসকে আগের চেয়ে আরও খারাপ পরিস্থিতিতে ফেলে দেয়।
<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
<!-- Pesky plugin styles -->
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
এখন আমি আমার শিশু থিমের শৈলীটিও সারিবদ্ধ করে তুলতে বাধ্য হচ্ছি, যাতে এটি লাইনের সামনের দিকে ফিরে যায়, যাতে চাইল্ড থিম সিএসএস- এর উপরোক্ত সমস্যাটি (নতুন শব্দ? লোল) উল্লিখিত ইস্যুটির কারণ হয় ।
অবহেলিত সেটআপ:
শিশু থিমে সংশোধিত ফাংশন:
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style', 99 );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'dm-parent-style', get_template_directory_uri().'/style.css' );
wp_enqueue_style( 'dm-child-style', get_stylesheet_directory_uri().'/style.css' );
}
ফলাফলগুলো:
নিম্নলিখিত ক্রম উত্পাদন <head>
:
<!-- Multiple individual parent theme styles here -->
<link rel='stylesheet' id='avia-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
<!-- Pesky plugin styles -->
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<link rel='stylesheet' id='dm-child-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
যদিও আমার ফাংশনে শিশু স্টাইলশিটটি অন্তর্ভুক্ত করার কারণে এটি দুটি বার সজ্জিত হয়েছিল, আইএমএইচও যা এই ধারণাটি অনুসারে কোডিংয়ের চেয়ে বেশি পছন্দনীয় যে মূল পিতা থিমটি আমাদের জন্য সঠিকভাবে আমাদের শিশু স্টাইলশিট সজ্জিত করবে। প্রতিটি এনকুইড শৈলীতে আইডি নির্ধারিত এর উপর ভিত্তি করে এটি প্রদর্শিত হয় যে পিতামাত থিমটি ডাব্লুপি কোরে কিছুই নয়, এটিকে উত্সাহিত করে।
আমার শিবম:
যদিও আমি এটির প্রস্তাবিত উপায় হিসাবে খুব কমই পরামর্শ দেব (এবং আমি নিশ্চিত যে আমার নিজের সমাধানের চেয়ে আরও কোডিং অভিজ্ঞতার চেয়ে বেশি ডেভস দেবস), আমি প্যারেন্ট থিমের আইডিটি (আমার শিশু থিমের স্টাইলটি সজ্জিত করতে ব্যবহৃত) ডানদিক থেকে আমার নিজস্ব এনকুইয়ের উপরে পেয়েছি I আমার চাইল্ড থিমের ফাংশন ফাইলটিতে প্রদর্শিত হয়েছে:
add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style', 99 );
function enqueue_parent_theme_style() {
wp_enqueue_style( 'dm-parent-style', get_template_directory_uri().'/style.css' );
wp_dequeue_style( 'avia-style' );
wp_enqueue_style( 'dm-child-style', get_stylesheet_directory_uri().'/style.css' );
}
ফলাফলগুলো:
এটি হাতের মুঠোয় সমস্যার সমাধান করেছে যার ফলস্বরূপ:
<!-- Multiple individual parent theme styles here -->
<!-- Plugin styles -->
<link rel='stylesheet' id='dm-parent-style-css' href='testinstall.dev/wp-content/themes/enfold/style.css?ver=4.0' type='text/css' media='all' />
<link rel='stylesheet' id='dm-child-style-css' href='testinstall.dev/wp-content/themes/child-theme/style.css?ver=2' type='text/css' media='all' />
অবশ্যই, পিতামাত থিম দ্বারা ব্যবহৃত আইডিটি জানার প্রয়োজন ছিল - স্ট্যান্ডার্ড চাইল্ড থিম ডেভলপমেন্ট পদ্ধতি হিসাবে আরও সাধারণ কিছু ব্যবহার করা দরকার।
সমস্যা 2: রিলোকটেড চাইল্ড স্টাইলশিট
(এটি বিশ্বাস করা শক্ত বলে মনে হচ্ছে এটি অন্য থ্রেডে উঠে আসে নি, যদিও দেখার সময় আমি নির্দিষ্ট কিছু দেখিনি ... যদি আমি এটি মিস করি তবে এটিকে আমার নজরে আনতে নির্দ্বিধায়।)
আমি আমার থিম শৈলীর জন্য চাইল্ড থিম রুট ডিরেক্টরিতে কখনই ডিফল্ট ব্যবহার করি নাstyle.css
- এটি অবশ্যই উপস্থিত থাকতে হবে তবে আমার সমস্ত আসল শৈলীগুলি এসএসএসএস থেকে একটি / সিএসএস / ডিরেক্টরিতে একটি মাইনযুক্ত .css ফাইল হিসাবে সংকলিত। যদিও আমি উপলব্ধি করেছি যে শিশু থিম বিকাশের জন্য এটি সর্বজনীন স্তরে "প্রত্যাশিত আদর্শ" নয় , তবে আমি জানি বেশিরভাগ গুরুতর ওয়ার্ডপ্রেস বিকাশকারী এটির মতো কিছু করেন। এটি অবশ্যই প্যারেন্ট থিমটি সন্ধান করেছে কিনা তা নির্বিশেষে আমার ফাংশনটিতে ম্যানুয়ালি সেই স্টাইলশিটটি সজ্জিত করা দরকার ।
সব মিলিয়ে ...
- চাইল্ড থিম স্ট্যান্ডার্ডের দৃষ্টিকোণ থেকে পিতা-মাতার থিমগুলি চাইল্ড থিমের স্টাইলগুলি যথাযথভাবে উত্সাহিত করবে এই ধারণাটি অন্তর্ভুক্ত করা কি নিরাপদ?
- অগ্রাধিকার সরিয়ে ফেলা ওয়ার্ডপ্রেস সম্প্রদায়ের অংশের জন্য আরও বিভ্রান্তি তৈরি করতে পারে, যখন চাইল্ড থিম শৈলীগুলি প্লাগইন দ্বারা ওভাররাইট করা শুরু হয়। আমরা থিমগুলি শৈলীর ওভাররাইট করার প্রত্যাশা করি, তবে প্লাগিনগুলির সাথে তেমন কিছু হয় না।
- প্রকৃত শিশু থিম শৈলীর জন্য কাস্টম স্টাইলশিট ব্যবহার করার সময় (তাদের পূর্বনির্ধারিত হিসাবে রাখার কথা মনে করা হয়
style.css
), সেই ফাইলটিকে ম্যানুয়ালি সজ্জিত করা প্রয়োজনীয় হয়ে ওঠে। বিকাশকারীদের বিস্তৃত বর্ণালী জুড়ে ধারাবাহিকতা বজায় রাখার ক্ষেত্রে, সম্ভাব্য সদৃশটিকে নির্বিশেষে শিশু স্টাইলশীটটিকে ম্যানুয়ালি উত্সাহিত করার জন্য কী অর্থ দেওয়া হবে না?