শর্টকোডের না বলা সমস্যা

লিখেছেন

মধ্যে

The-Unspoken-Problem-of-Shortcodes

ওয়ার্ডপ্রেসের অন্যতম সেরা বৈশিষ্ট্য হলো শর্টকোড। শর্টকোড হলো ডেভেলপার এবং সাইট নির্মাতাদের মধ্যে সংযোগ সেতু, যা ব্যবহারকারীদের তাদের ইচ্ছানুযায়ী প্রায় যেকোনো জায়গায় বিস্তারিত কনটেন্ট যুক্ত করার সুযোগ দেয়। প্লাগইন নির্মাতারা শর্টকোড পছন্দ করেন কারণ এটি তাদের ব্যবহারকারীদের কনটেন্ট কীভাবে এবং কোথায় প্রদর্শিত হবে সে ক্ষেত্রে আরও বেশি নমনীয়তা প্রদান করে।

আপনি যদি শর্টকোড কী এবং সেগুলি দেখতে কেমন তা না জানেন, তবে জেনে রাখুন সেগুলি হলো তৃতীয় বন্ধনীতে (স্কয়ার ব্র্যাকেট) আবদ্ধ প্রাচীন কোডের মতো দেখতে টেক্সট। এগুলি দেখতে অনেকটা এরকম হয়:

এই নির্দিষ্ট শর্টকোডটিকে এম্বেড (embed) শর্টকোড বলা হয় এবং এটি ওয়ার্ডপ্রেসের সাথে ডিফল্টভাবে অন্তর্নির্মিত থাকে। এই নির্দিষ্ট শর্টকোডটি উক্ত ইউআরএল (URL) থেকে ভিডিওটিকে আপনার কনটেন্টে এম্বেড করে দেয়। এটি পরীক্ষা করে দেখতে চাইলে উপরের শর্টকোডটি কপি করে আপনার সাইটে পেস্ট করে দেখতে পারেন।

পেছনের প্রেক্ষাপটে যা ঘটে তা হলো, ওয়ার্ডপ্রেস যখন আপনার কনটেন্টে কোনো শর্টকোড খুঁজে পায়, তখন এটি প্রক্রিয়াজাত হয় এবং অন্য কিছুতে রূপান্তরিত হয়। আমাদের উপরের উদাহরণের ক্ষেত্রে, যখনই একটি

শর্টকোড সনাক্ত করা হয়, ওয়ার্ডপ্রেস শর্টকোডের ইউআরএলটি নেয় এবং তার কাছে থাকা বেশ কয়েকটি কনটেন্ট সরবরাহকারীর সাথে মিলিয়ে দেখে। যখন একটি উপযুক্ত মিল পাওয়া যায়, তখন এটি সঠিক আইফ্রেম (iframe) এম্বেড কোডটি নিয়ে আসে এবং সেটির পরিবর্তে তা প্রদর্শন করে।

তাহলে এখানে সমস্যাটা কোথায়? এটি তো বেশ সহজ মনে হচ্ছে, আপনি কেবল বন্ধনীসহ একটি ছোট টেক্সট লিখবেন এবং কাজ শেষ।

এবার জানা যাক শর্টকোড এপিআই (Shortcode API) সম্পর্কে..

শর্টকোডের প্রাচুর্য

শর্টকোড এপিআই ডেভেলপারদের জন্য শর্টকোড তৈরির পথ উন্মুক্ত করে দেয়। এর কারণে, ডেভেলপাররা তাদের প্লাগইনের ভেতরে নিজেদের নিজস্ব শর্টকোড যোগ করতে পারেন।

এটি দুর্দান্ত, এখন কেবল একটি সংক্ষিপ্ত কোড-সদৃশ স্নsnippet (যার কারণে নাম “শর্টকোড”) এর সাহায্যে নতুন এবং অভিজ্ঞ উভয় ধরনের ব্যবহারকারীই যেকোনো ধরনের কনটেন্ট তাদের ইচ্ছামতো যেকোনো জায়গায় রাখতে পারেন।

ডিফল্টভাবে ওয়ার্ডপ্রেসে মাত্র কয়েকটি শর্টকোড থাকে। যেহেতু সেগুলির সংখ্যা খুব কম, তাই মুখস্থ করে লিখে ফেলা সহজ। কিন্তু আপনি যদি কয়েকটি প্লাগইন ইনস্টল করেন, তবে শর্টকোডের সংখ্যা দ্রুত এক ডজন বা তার বেশি হয়ে যায়, এবং কিছু ক্ষেত্রে একশোরও বেশি। প্রতিটি শর্টকোডের নিজস্ব অ্যাট্রিবিউট এবং সেগুলি ব্যবহারের নিজস্ব নির্দেশাবলী থাকে। প্রতিটি প্লাগইনের সম্ভবত তাদের সমস্ত শর্টকোড কীভাবে কাজ করে সে সম্পর্কে কিছু ডকুমেন্টেশন থাকে এবং প্রতিটিতে উপলব্ধ সমস্ত প্যারামিটার তালিকাভুক্ত থাকে। কিন্তু আপনি যদি সমস্ত শর্টকোড এবং তাদের অ্যাট্রিবিউট মুখস্থ করার চেষ্টা করেন তবে তা পাগলামি ছাড়া আর কিছুই হবে না।

সমস্যাটি হলো, এমন কোনো কেন্দ্রীভূত স্থান নেই যেখানে আপনি আপনার সাইটে উপলব্ধ সমস্ত শর্টকোড এবং সেগুলি কীভাবে ব্যবহার করতে হয় তা খুঁজে পেতে পারেন।

কেউ কেউ সমস্যা সমাধানের চেষ্টা করেন

কিছু প্লাগইন তাদের নিজস্ব সমস্ত শর্টকোড সহজে ব্যবহারযোগ্য ড্রপডাউনে উপস্থাপন করে এই সমস্যা সমাধানের চেষ্টা করে। তারপর কোনো একটিতে ক্লিক করলেই শর্টকোডটি তার সমস্ত সম্ভাব্য অ্যাট্রিবিউটসহ স্ক্রিনে প্রদর্শিত হয়। আর মুখস্থ করার প্রয়োজন হয় না, যা একটি ভালো দিক।

Screen-Shot-2016-06-22-at-11.27.09-AM

কেউ কেউ আরও এগিয়ে যান এবং শর্টকোডের অ্যাট্রিবিউট পূরণ করার জন্য চেকবক্স এবং কালার পিকারসহ একটি সেটিংস পপআপ ফর্ম যুক্ত করেন।

Screen-Shot-2016-06-22-at-11.28.54-AM

এই সমাধানটি মোটামুটি কাজ করে। তবে, প্রতিটি প্লাগইন শুধুমাত্র তাদের নিজস্ব শর্টকোডগুলো তালিকাভুক্ত করে। সুতরাং প্রতিটি প্লাগইন যদি তাদের নিজস্ব শর্টকোড পিকার তৈরি করে, তবে আপনার স্ক্রিনে একাধিক শর্টকোড পিকার দেখা যাওয়ার মতো পরিস্থিতি তৈরি হতে বাধ্য (আমার সাথে আগেও এমনটি ঘটেছে)।

Screen-Shot-2016-06-22-at-11.22.41-AM

অন্য কথায়, প্রতিটি প্লাগইন নিজেদের মতো করে কাজ করে এবং তাদের নিজস্ব শর্টকোডের জন্য নিজস্ব সমাধান প্রয়োগ করে। কিছু প্লাগইন “Add Media” বোতামের পাশে একটি নতুন বোতাম যুক্ত করে, অথবা TinyMCE-এর ভেতরে একটি নতুন বোতাম যোগ করে।

সুতরাং এখন আপনি হয়তো ভাবতে পারেন, “অন্যান্য প্লাগইনের শর্টকোডগুলোও সংগ্রহ করে কেন আপনার ড্রপডাউন / শর্টকোড পিকারে অন্তর্ভুক্ত করা হচ্ছে না?” আমিও ঠিক তাই ভেবেছিলাম। কিন্তু, বলা যত সহজ করা ততটা সহজ নয়। কেন তা আমি একটু পরেই ব্যাখ্যা করছি, তবে প্রথমে দেখা যাক একটি আদর্শ সমাধান কেমন হতে পারে।

আদর্শ সমাধান

নিখুঁত পরিকল্পনাটি হতো এমন একটি প্লাগইন তৈরি করা যা আপনার সাইটের সমস্ত উপলব্ধ শর্টকোড একত্রিত করবে, তারপর আপনাকে তালিকাটি দেখাবে এবং সমস্ত অ্যাট্রিবিউট পূরণ করতে সহায়তা করবে। এবং প্রতিবার যখনই আপনি একটি নতুন প্লাগইন ইনস্টল করবেন, তখন সেই নতুন যোগ হওয়া সমস্ত শর্টকোডও আপনার সামনে উপস্থাপন করা হবে।

একটি কেন্দ্রীয় স্থানের কথা কল্পনা করুন যেখানে সহজে ব্যবহারের জন্য আপনার সমস্ত শর্টকোড রাখা থাকবে। প্রতিটি শর্টকোড কী কাজ করে এবং এটি কোন প্লাগইনের অন্তর্ভুক্ত তা সেখানে ব্যাখ্যা করা থাকবে। তারপর প্রতিটি উপলব্ধ অ্যাট্রিবিউটের জন্য একটি লেবেল, সেগুলির মান নির্বাচনের একটি উপযুক্ত উপায় এবং একটি বিবরণ থাকবে। আপনাকে ড্রপ ডাউন, কালার পিকার, রেডিও বোতাম, টগল ইত্যাদি দেখানো হবে।

এরকম কিছু ওয়েবসাইট এবং কনটেন্ট নির্মাতা হিসেবে আমাদের জীবনকে আরও সহজ করে তুলবে। আপনি ব্যবহার করতে চান এমন একটি স্লাইডারের জন্য জেনারেট করা শর্টকোড কপি করার জন্য আলাদা আলাদা ডকুমেন্টেশন বা আপনার অ্যাডমিনের বিভিন্ন অংশে খোঁজাখুঁজি করার আর প্রয়োজন হবে না।

বাধা বা সীমাবদ্ধতা

দুর্ভাগ্যবশত, এই মুহূর্তে এরকম কিছু করা বেশ কঠিন। কোনো শর্টকোডের সমস্ত বিবরণ জানার মতো কোনো নিশ্চিত উপায় নেই। আপনি সমস্ত শর্টকোডের একটি তালিকা পেতে পারেন, তবে কেবল তাদের প্রকৃত ট্যাগ/নামগুলো; আপনি সেগুলি সম্পর্কে কোনো অতিরিক্ত বিবরণ পেতে পারবেন না যেমন অ্যাট্রিবিউটের তালিকা, সেগুলি কী করে এবং তাদের ধরণ—যেমন স্ট্রিং, কালার বা কোনো সংখ্যা। এমনকি প্রতিটি অ্যাট্রিবিউটের জন্য সাধারণ কোনো বিবরণও পাওয়া যায় না।

ডেভেলপারদের জন্য নোট: হ্যাঁ, shortcode_atts ফাংশনের জন্য সম্প্রতি একটি তৃতীয় আর্গুমেন্ট যোগ করা হয়েছে, তবে এটি কোনো বাধ্যতামূলক আর্গুমেন্ট নয়। সুতরাং বিশ্বের প্রতিটি প্লাগইন ডেভেলপার যদি এটি প্রয়োগ না করেন, তবে শর্টকোডের সমস্ত অ্যাট্রিবিউট নির্ধারণ করার কোনো নিশ্চিত উপায় আমাদের কাছে থাকবে না।

শর্টকোড এপিআই শর্টকোডের বিবরণ যোগ করা, অ্যাট্রিবিউটের টাইপ কাস্টিং করা বা অ্যাট্রিবিউটের বিবরণ দেওয়ার কোনো সুবিধা প্রদান করে না। এবং ওয়ার্ডপ্রেস নিজে যদি শর্টকোড ব্যবহারের জন্য কোনো কেন্দ্রীয় স্থান যোগ না করে, তবে এই সুবিধাটি তৈরি হবে কিনা তা নিয়ে আমার সন্দেহ আছে।

উপসংহার

এই মুহূর্তে শর্টকোড সাজিয়ে রাখার কাজটি প্রতিটি ডেভেলপারের ওপর নির্ভর করে। ওয়ার্ডপ্রেসের মধ্যে কোনো কেন্দ্রীয় পদ্ধতি তৈরি না হওয়া পর্যন্ত, আপনার ব্যাকএন্ডে একাধিক “Add Shortcode” বোতাম দেখতে পাওয়ার জন্য প্রস্তুত থাকুন। ওয়ার্ডপ্রেস কোরে এমন কিছু যোগ করা উচিত কি না তা নিজেই একটি বিশাল আলোচনার বিষয়।

একটি বিকল্প

কিছু পেজ বিল্ডার প্লাগইন রয়েছে যা এটিকে ভিন্নভাবে সমাধান করে। প্রোগ্রাম্যাটিকভাবে শর্টকোড সনাক্ত করার পরিবর্তে, তাদের শর্টকোড ম্যাপার রয়েছে যেখানে ব্যবহারকারীরা ম্যানুয়ালি শর্টকোডের প্রতিটি বিবরণ ইনপুট করতে পারেন। একবার করা হলে, এটি পেজ বিল্ডারের মধ্যে উপলব্ধ হয়ে যায়। যদিও  এটি কাজ করে, তবে সেগুলি কেবল আপনার নিজস্ব সাইটেই সীমাবদ্ধ থাকে।

আমরা এখানে Page Builder Sandwich-এ এমন কিছু তৈরি করছি যা আশা করি এই শর্টকোড সমস্যার সমাধান করতে পারবে। আমাদের অগ্রগতি সম্পর্কে অবহিত হতে নিচে আমাদের নিউজলেটার সাবস্ক্রাইব করুন।