ACF নাকি Secure Custom Fields: ওয়ার্ডপ্রেস কাস্টম ফিল্ডে ২০২৬ সালে কোনটা ব্যবহার করবেন
ওয়ার্ডপ্রেস প্লাগইন ডিরেক্টরিতে গিয়ে ACF সার্চ করলে এখন একটা নতুন নাম চোখে পড়ে: Secure Custom Fields। দুই বছর আগেও এই নামটা ছিল না। অনেক ফ্রিল্যান্সার এখনো পুরনো অভ্যাসে ACF ইনস্টল করে যাচ্ছেন, অথচ জানেনই না মাঝখানে কী বদলে গেছে এবং কোনটা ক্লায়েন্টের সাইটের জন্য আসলে নিরাপদ। ওয়ার্ডপ্রেস কাস্টম ফিল্ড বসানোর এই সিদ্ধান্তটা ছোট মনে হলেও, ভুল প্লাগইন বেছে নিলে বছরখানেক পর পুরো সাইট আটকে যেতে পারে।
কেন হঠাৎ ACF নিয়ে এত আলোচনা
২০২৪ সালের অক্টোবরে ওয়ার্ডপ্রেস কোর টিম এবং WP Engine-এর মধ্যকার বিরোধের জেরে ওয়ার্ডপ্রেস.org থেকে ACF-এর একটা ফ্রি ফর্ক তৈরি হয়, নাম Secure Custom Fields (SCF)। ACF তখন WP Engine-এর মালিকানাধীন একটা প্লাগইন, আর SCF ডেভেলপ করে সরাসরি ওয়ার্ডপ্রেস কোর টিম। ঘটনাটা রাজনৈতিক শোনালেও, ফ্রিল্যান্সার আর ডেভেলপারদের জন্য বাস্তব প্রভাব একটাই: এখন একই কাজের জন্য দুইটা আলাদা প্লাগইন আছে, আর কোনটা কবে কীভাবে আপডেট হচ্ছে সেটা জানা জরুরি।
২০২৬ সালের আগস্ট পর্যন্ত দুটো প্লাগইনই সক্রিয়ভাবে আপডেট হচ্ছে। SCF-এর সবশেষ ভার্সন ৬.৯.৫, প্রায় ৯০ হাজার সাইটে সক্রিয়, কোনো known CVE নেই। ACF ২০ লাখেরও বেশি সাইটে চলছে, এ পর্যন্ত ১২টা CVE প্যাচ হয়েছে, সবশেষটা ২০২৬ সালের মে মাসে। দুটোই নিয়মিত সিকিউরিটি প্যাচ পাচ্ছে, তাই “ACF অনিরাপদ” বলে দাগিয়ে দেওয়াটা ঠিক না, তবে পার্থক্যগুলো জানা থাকা দরকার।
ACF আর Secure Custom Fields আসলে কী কাজ করে
দুটো প্লাগইনই একই কাজ করে: পোস্ট, পেজ বা কাস্টম পোস্ট টাইপে টেক্সট, ইমেজ, URL, রিলেশনশিপের মতো স্ট্রাকচার্ড কাস্টম ফিল্ড যোগ করা। ওয়ার্ডপ্রেসের নিজস্ব Custom Fields প্যানেলও আছে, কিন্তু সেটা কাঁচা এবং ক্লায়েন্টকে দেখানোর মতো না। ACF বা SCF দিয়ে ফিল্ড গ্রুপ বানিয়ে, লেবেল দিয়ে, নির্দিষ্ট পোস্ট টাইপে অ্যাসাইন করে একটা পরিষ্কার এডিটিং ইন্টারফেস পাওয়া যায়।
কাস্টম পোস্ট টাইপ বানানো নিয়ে আগে বিস্তারিত লেখা হয়েছে এই গাইডে। CPT বানানোর পর সেই কনটেন্ট টাইপে গোছানো ফিল্ড যোগ করার কাজটাই করে ACF বা SCF। একটা ছাড়া আরেকটা প্রায় অসম্পূর্ণ, Portfolio CPT বানিয়ে যদি ক্লায়েন্ট নাম, ছবি, প্রজেক্ট লিংক আলাদা ফিল্ডে না দিতে পারেন, তাহলে CPT বানানোর পুরো উদ্দেশ্যটাই ব্যর্থ।
ACF বনাম SCF: ফিচার, নিরাপত্তা আর দামে পার্থক্য
দাম আর ফিচারের দিক থেকে দুটো প্লাগইন সমান না। SCF সম্পূর্ণ ফ্রি এবং কোনো প্রিমিয়াম আপসেল নেই। ACF-এর ফ্রি ভার্সনে বেসিক ফিল্ড টাইপ আছে, কিন্তু কিছু ফিল্ড টাইপ শুধু ACF PRO-তে পাওয়া যায়।
ACF PRO-র দাম এক সাইটের জন্য বছরে ৪৯ ডলার, ১০টা সাইটের জন্য ১৪৯ ডলার, আনলিমিটেড সাইটের জন্য ২৪৯ ডলার। SCF-এ এই ফিল্ড টাইপগুলোর সবগুলো এখনো নেই, তাই জটিল লেআউট বা সাইটওয়াইড অপশন লাগলে আপাতত ACF PRO-ই একমাত্র পথ।
একটা টেকনিক্যাল ব্যাপার মাথায় রাখা জরুরি: SCF ইনস্টল করলে ওয়ার্ডপ্রেস স্বয়ংক্রিয়ভাবে ACF এবং ACF PRO ডিঅ্যাক্টিভেট করে দেয়, কোড কনফ্লিক্ট এড়ানোর জন্য। দুটো প্লাগইন একসাথে সক্রিয় রাখার চেষ্টা করলে সাইট ভাঙার ঝুঁকি থাকে। প্লাগইন কনফ্লিক্ট সাধারণভাবে কীভাবে চেনা আর সমাধান করা যায় তা নিয়ে এই গাইডে বিস্তারিত লেখা হয়েছে।
কোনটা বেছে নেবেন: প্র্যাকটিক্যাল সিদ্ধান্ত
সহজ উত্তর নেই, তবে একটা কাজের নিয়ম আছে। ক্লায়েন্টের সাইটে যদি শুধু কিছু টেক্সট, ইমেজ বা URL ফিল্ড দরকার হয়, SCF দিয়ে শুরু করাই যুক্তিসঙ্গত। ফ্রি, লাইসেন্স কি নেই, ওয়ার্ডপ্রেস কোর টিমের মেইনটেইন করা, রিনিউয়ালের ঝামেলা নেই। কিন্তু Repeater, Flexible Content বা Gallery ফিল্ডের মতো জটিল স্ট্রাকচার লাগলে ACF PRO কেনাই সবচেয়ে নির্ভরযোগ্য সমাধান, অন্তত যতদিন না SCF এই ফিচারগুলো নিজের মধ্যে যোগ করে।
একটা সাধারণ ভুল ফ্রিল্যান্স প্রজেক্টে বারবার দেখা যায়: ACF PRO লাইসেন্স দিয়ে সাইট বানিয়ে ডেলিভারি দেওয়া হয়, কিন্তু লাইসেন্স কার কাছে থাকবে, বছর শেষে কে রিনিউ করবে, সেটা কনট্র্যাক্টে লেখা থাকে না। লাইসেন্স মেয়াদ ফুরালে প্লাগইন আপডেট বন্ধ হয়ে যায়, ফিল্ড এডিট করা যায় না, আর ক্লায়েন্ট বছরখানেক পর হঠাৎ বুঝতে পারেন সাইটের একটা অংশ অচল। এই আলোচনাটা প্রজেক্ট শুরুর আগেই সেরে ফেলা ভালো।
কাস্টম ফিল্ড আর সাইটের স্পিড: যা খেয়াল রাখা দরকার
কাস্টম ফিল্ড নিজে থেকে সাইট স্লো করে না, কিন্তু ভুল ব্যবহার করলে সমস্যা হয়। প্রতিটা get_field() কল একটা ডাটাবেজ কোয়েরি চালায়, আর একই টেমপ্লেটে বারবার একই ফিল্ড আলাদাভাবে কল করলে অপ্রয়োজনীয় কোয়েরি জমে। Repeater ফিল্ডের ভেতর আরেকটা Repeater বসিয়ে বেশি নেস্টেড স্ট্রাকচার বানালে অ্যাডমিন প্যানেল আর ফ্রন্টএন্ড দুটোই ভারী হয়ে যায়।
প্র্যাকটিক্যাল সমাধান হলো, একবারে সব ফিল্ড get_fields() দিয়ে নিয়ে অ্যারেতে রেখে ব্যবহার করা, বারবার আলাদা get_field() কল না করে। পেজ ক্যাশিং প্লাগইন থাকলে বেশিরভাগ সমস্যা এমনিতেই ঢাকা পড়ে যায়, কিন্তু হাই-ট্রাফিক সাইটে অতিরিক্ত নেস্টেড ফিল্ড স্ট্রাকচার শুরু থেকেই এড়িয়ে চলা ভালো।
কীভাবে কাস্টম ফিল্ড দিয়ে কাজ শুরু করবেন
SCF বা ACF যেটাই বেছে নেওয়া হোক, সেটআপের ধাপ প্রায় একই। নিচের ধাপগুলো অনুসরণ করলেই প্রথম ফিল্ড গ্রুপ তৈরি হয়ে যাবে।
- Plugins থেকে Add New গিয়ে Secure Custom Fields বা Advanced Custom Fields ইনস্টল করুন।
- অ্যাডমিন মেনুতে Custom Fields এ গিয়ে Add New বাটনে ক্লিক করুন।
- ফিল্ড গ্রুপের একটা নাম দিন, তারপর Add Field দিয়ে টেক্সট, ইমেজ, URL এর মতো ফিল্ড টাইপ যোগ করুন।
- Location রুলসে গিয়ে বলে দিন এই ফিল্ড গ্রুপ কোন পোস্ট টাইপে দেখাবে, যেমন Post Type is equal to Portfolio।
- Publish করে দিন, তারপর সেই পোস্ট টাইপের এডিট স্ক্রিনে ফিল্ডগুলো দেখা যাবে।
ফিল্ড তৈরি হয়ে গেলে থিমের টেমপ্লেট ফাইলে সেই ডেটা দেখানোর জন্য get_field() ফাংশন ব্যবহার করা হয়।
<?php
$project_link = get_field( 'project_url' );
if ( $project_link ) {
echo '<a href="' . esc_url( $project_link ) . '">' . esc_html__( 'প্রজেক্ট দেখুন', 'cf-theme' ) . '</a>';
}
?>
esc_url() আর esc_html() এখানে ইচ্ছাকৃতভাবে রাখা হয়েছে। কাস্টম ফিল্ডের ডেটা সরাসরি echo করলে সিকিউরিটি স্ক্যানে রেড ফ্ল্যাগ ওঠে, ক্লায়েন্ট সাইটে এটা ছোট বিষয় না।
সাধারণ ভুল যা এড়ানো উচিত
কাস্টম ফিল্ড নিয়ে কাজ করার সময় কিছু ভুল বারবার চোখে পড়ে, বেশিরভাগই ছোট অসাবধানতা থেকে হয়।
শেষ কথা
ওয়ার্ডপ্রেস কাস্টম ফিল্ডের জন্য এখন আর একটা মাত্র অপশন নেই, আর সেটা খারাপ কিছু না। সাধারণ সাইটের জন্য SCF দিয়ে শুরু করুন, জটিল লেআউট বা সাইটওয়াইড অপশন লাগলে তখনই ACF PRO কিনুন, কিন্তু দুটো প্লাগইন কখনো একসাথে চালাবেন না। ওয়ার্ডপ্রেস ব্যবহার করে ওয়েবসাইট তৈরির পুরো প্রসেস ধাপে ধাপে শিখতে চাইলে ওয়ার্ডপ্রেস প্রো কোর্স দেখে নিতে পারেন।