প্লাগইনগুলিতে ব্যবহারের জন্য স্ক্রিপ্টগুলি এবং / অথবা শৈলীগুলি নিবন্ধিত করার আইডিয়া উপায় কী?
আমি সম্প্রতি একটি শর্টকোড সহ ব্যবহারকারী অবতার / গ্রাভাটার যুক্ত করতে একটি প্লাগইন সাধারণ প্লাগইন তৈরি করেছি । আমার অবতার (স্কোয়ার, বৃত্তাকার ইত্যাদি) প্রদর্শনের জন্য বিভিন্ন স্টাইলের বিকল্প রয়েছে এবং সিএসএস সরাসরি শর্টকোডে রাখার সিদ্ধান্ত নিয়েছি।
যাইহোক, আমি এখন বুঝতে পারি যে এটি কোনও ভাল পদ্ধতির নয় কারণ এটি যখন প্রতি পৃষ্ঠায় শর্টকোড ব্যবহার করা হয় তখন প্রতিবার CSS এর পুনরাবৃত্তি করবে। আমি এই সাইটে আরও বেশ কয়েকটি পন্থা দেখেছি এবং ডাব্লুপি কোডডেক্স এমনকি তাদের নিজস্ব দুটি উদাহরণ রয়েছে তাই কোন পদ্ধতির সুনির্দিষ্ট এবং দ্রুততম তা জানা মুশকিল।
আমি বর্তমানে যে পদ্ধতিগুলি সম্পর্কে অবগত রয়েছি সেগুলি এখানে:
পদ্ধতি 1: সরাসরি শর্টকেডে অন্তর্ভুক্ত করুন - এটি বর্তমানে আমি প্লাগইনে করছি, তবে কোডটি পুনরাবৃত্তি করার পরে এটি ভাল মনে হচ্ছে না।
class My_Shortcode {
function handle_shortcode( $atts, $content="" ) {
/* simply enqueue or print the scripts/styles in the shortcode itself */
?>
<style type="text/css">
</style>
<?php
return "$content";
}
}
add_shortcode( 'myshortcode', array( 'My_Shortcode', 'handle_shortcode' ) );
পদ্ধতি 2: শর্তসাপেক্ষে স্ক্রিপ্টগুলি বা শৈলীর সন্ধানের জন্য ক্লাস ব্যবহার করুন
class My_Shortcode {
static $add_script;
static function init() {
add_shortcode('myshortcode', array(__CLASS__, 'handle_shortcode'));
add_action('init', array(__CLASS__, 'register_script'));
add_action('wp_footer', array(__CLASS__, 'print_script'));
}
static function handle_shortcode($atts) {
self::$add_script = true;
// shortcode handling here
}
static function register_script() {
wp_register_script('my-script', plugins_url('my-script.js', __FILE__), array('jquery'), '1.0', true);
}
static function print_script() {
if ( ! self::$add_script )
return;
wp_print_scripts('my-script');
}
}
My_Shortcode::init();
পদ্ধতি 3: ব্যবহার get_shortcode_regex();
function your_prefix_detect_shortcode() {
global $wp_query;
$posts = $wp_query->posts;
$pattern = get_shortcode_regex();
foreach ($posts as $post){
if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )
&& array_key_exists( 2, $matches )
&& in_array( 'myshortcode', $matches[2] ) )
{
// css/js
break;
}
}
}
add_action( 'wp', 'your_prefix_detect_shortcode' );
পদ্ধতি 4: ব্যবহার has_shortcode();
function custom_shortcode_scripts() {
global $post;
if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'myshortcode') ) {
wp_enqueue_script( 'my-script');
}
}
add_action( 'wp_enqueue_scripts', 'custom_shortcode_scripts');
Method 4: Using has_shortcode();
সর্বোত্তম কারণ কারণ এটি নিশ্চিত করবে যে স্ক্রিপ্টগুলি এবং শৈলীগুলি একবার লোড হবে যদি পোস্ট সামগ্রীতে শর্টকোডের একাধিক ব্যবহার নির্বিশেষে শর্টকোড থাকে। যদিও এটি উইজেটগুলিতে বা সাইডবারে শর্টকোড ব্যবহারের জন্য কাজ না করে তবে নিশ্চিত নয়। যদি এটি কোনও প্লাগিনের জন্য হয় তবে আমি আপনাকে শর্টকোডের সাথে স্ক্রিপ্টগুলি বেঁধে দেওয়ার পরামর্শ দেব না কারণ কেউ কেউ পছন্দসই আউটপুট পেতে শর্টকোডের পরিবর্তে আপনার ফাংশনটিকে কল করতে পারে।