আমি কখন wp_enqueue_script () বনাম শুধু wp_enqueue_script () দিয়ে wp_register_script () ব্যবহার করব?


54

আপনার যখন ব্যবহার করা দরকার তখন বুঝতে আমার সমস্যা হচ্ছে wp_register_script()। বর্তমানে আমি এই জাতীয় কিছু ব্যবহার করছি:

add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
function enqueue() {
    $handle = 'some-handle';
    $js = 'http://example.com/my.js';
    wp_register_script( $handle, $js );
    wp_enqueue_script( $handle );
}

আমি প্রচুর পঠন করেছি (কোডেক্স, ব্লগ, ইত্যাদি), তবে কখন আমাকে প্রথমে নিবন্ধন করা উচিত, বা কখন আমার সন্নিবেশ করা উচিত তা বেশ বুঝতে পারি না। উদাহরণ হিসাবে, আমি লক্ষ্য করেছি যে টোয়েন্টিওয়েলও কোনও স্টাইল বা স্ক্রিপ্ট নিবন্ধ করে না, এটি কেবল তাদের এনকুইয়ে দেয়।

উত্তর:


49

wp_register_script()কোডেক্স পৃষ্ঠা আক্ষরিক বলেছেন:

পরে ব্যবহারের জন্য ওয়ার্ডপ্রেসে জাভাস্ক্রিপ্টগুলি নিবন্ধভুক্ত করার একটি নিরাপদ উপায় wp_enqueue_script()

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

উদাহরণ স্বরূপ:

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

...
wp_register_script( 'my-handy-javascript', ... );
...
switch( $somevar ) {
    case 'value':
        wp_enqueue_script( 'my-handy-javascript' ); // needs the file
        ...
    break;
    case 'value2':
        wp_enqueue_script( 'my-handy-javascript' ); // needs the file
        ...
    break;
    default:
    case 'value3': // doesn't needs the file
        ...
    break;
}

কোনও স্ক্রিপ্ট নিবন্ধকরণ এবং তারপরে এঁকে দেওয়ার প্রয়োজন হয় না, তবে আপনি যদি আপনার কোডের যে কোনও functions.phpজায়গায় পরিবর্তে আপনার যে কোনও স্ক্রিপ্টের প্রয়োজন হয় তবে আপনার কোডটিতে কিছু যুক্তি সরবরাহ করতে পারে ।

কোডেক্স নিম্নলিখিতগুলিও বলে:

wp_enqueue_scriptsএই ফাংশনটি কল করতে অ্যাকশনটি ব্যবহার করুন বা admin_enqueue_scriptsএডমিনের পক্ষ থেকে কল করুন।

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


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

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

2
সেই অর্থে, আমি "আপনি প্রতিবার স্ক্রিপ্টটি সজ্জিত করতে পারেন, আরও সংস্থান খরচ করতে পারে, বা যখন আপনার প্রয়োজন হবে তখনই স্ক্রিপ্টটি সজ্জিত করতে পারেন" এর সাথে আমি একমত নই। আপনার উদাহরণ কোডে, আপনি রেজিস্টার কলটি সরিয়ে ফেলতে পারেন এবং এর পরিবর্তে একাধিক সমতুল্য পূর্ণ-পরিপূর্ণ ($ src আরগ সহ) কল করতে পারেন wp_enqueue_style()। এটি কেবল আরও টাইপিং প্রচেষ্টা হবে তবে বৃহত্তর সংস্থানগুলির প্রয়োজনীয়তার ফলস্বরূপ নয় । সঠিক?
জানু-ফিলিপ গেহর্ক্ক 16'15

7
একটি পয়েন্ট যা এখনও অবধি সমস্ত ব্যাখ্যা দিয়ে রেখে গেছে তা হ'ল wp_register_script()আপনি কেবল একটি স্ক্রিপ্ট নিবন্ধন করতে ব্যবহার করতে পারেন যাতে এটি অন্যান্য স্ক্রিপ্টগুলির জন্য নির্ভরতা হিসাবে ব্যবহার করা যেতে পারে এবং কেবল এগুলি সরাসরি লোকেটে না ফেলে এগুলি দিয়ে বোঝানো যেতে পারে।
জেহফম্যান

1
যদিও এই এটা ভাল ব্যাখ্যা করে আমি পড়তে সুপারিশ করবে এই উত্তর হিসাবে ভাল।
lowtechsun

8

আইএমএইচও এর wp_register_scriptআগে ব্যবহারের প্রধান সুবিধাটি কোডেক্সেরwp_enqueue_scripts নিম্নলিখিত অনুচ্ছেদে চিত্রিত হয়েছে :

যে স্ক্রিপ্টগুলি wp_register_script () ব্যবহার করে প্রাক-নিবন্ধভুক্ত হয়েছে সেগুলি wp_enqueue_script () ব্যবহার করে ম্যানুয়ালি উত্সাহিত করার দরকার নেই যদি তারা অন্য কোনও স্ক্রিপ্টের নির্ভরতা হিসাবে তালিকাবদ্ধ থাকে তবে তালিকাভুক্ত হয়। ওয়ার্ডপ্রেস স্বয়ংক্রিয়ভাবে নিবন্ধভুক্ত স্ক্রিপ্টটি অন্তর্ভুক্ত করবে এর মধ্যে এনকুইড স্ক্রিপ্ট অন্তর্ভুক্ত থাকবে যা নিবন্ধিত স্ক্রিপ্টের হ্যান্ডেলকে নির্ভরতা হিসাবে তালিকাভুক্ত করে।

আপনি যদি বিশ্বাস করেন যে আপনার এটির দরকার নেই (উদাহরণস্বরূপ যে আপনি 100% নিশ্চিত যে আপনার স্ক্রিপ্ট কোনও নির্ভরশীলতার সাথে জড়িত হবে না) আপনি সম্ভবত wp_enqueue_scriptsপ্রাথমিক ছাড়াই সরাসরি যেতে পারেন wp_register_script


2

আমি কিছু নিবন্ধ দিয়েছি এবং নিম্নলিখিত উপসংহারে এসেছি। আমি মনে করি এটি সাহায্য করে।

  1. যে কোনও স্ক্রিপ্ট ব্যবহার করে নিবন্ধন wp_register_script()করা কেবল নিবন্ধকরণ; এটি লোড করা হয় না। নিবন্ধিত স্ক্রিপ্টটি লোড করা হবে না যতক্ষণ না এটি ব্যবহার সারি করা হয় wp_enqueue_script()
  2. আমাদের একসাথে প্রতিটি স্ক্রিপ্ট নিবন্ধকরণ এবং সারিবদ্ধ করার দরকার নেই। আমাদের খালি করা উচিত। wp_enqueue_script()ফাংশনটি স্বয়ংক্রিয়ভাবে স্ক্রিপ্টটিকে নিবন্ধভুক্ত করায় নিবন্ধকরণ বাধ্যতামূলক নয় ।
  3. তবে আমাদের নিচের কোন পরিস্থিতিতে থাকতেই নিবন্ধন করতে হবে:

    ক। মনে করুন আমাদের একবারে একাধিক জায়গায় লোড করার জন্য স্ক্রিপ্টের দরকার যেমন একবার ফ্রন্ট-এন্ড এবং একবার ব্যাক-এন্ড (অ্যাডমিন পৃষ্ঠা) এ। এখন আমরা একবারে স্ক্রিপ্টটি নিবন্ধভুক্ত করতে পারি। এবং তারপরে পৃথকভাবে এটিকে সামনে-এন্ড এবং ব্যাক-এন্ডে সারিবদ্ধ করুন। দেখুন, সারিবদ্ধকরণ বোঝাই বোঝাই। নিবন্ধকরণের অর্থ বোঝাই নয়। যদি আমরা এটি নিবন্ধভুক্ত না করি তবে আমরা এটি তৈরি করার পরে এটি স্বয়ংক্রিয়ভাবে নিবন্ধিত হবে। অন্যদিকে, আমরা যদি এটি একবার নিবন্ধভুক্ত করি তবে এটি একবারে নিবন্ধভুক্ত হবে, যতবারই আমরা এটি উত্সাহিত করি না।

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

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

এনবি যতদূর আমি নিশ্চিত, সিএসএস স্টাইলশিটগুলির জন্য একই উপসংহারটি আঁকতে পারে। আমি বলতে চাই যে আমরা ব্যবহার করতে পারি মানে wp_register_style()এবং wp_enqueue_style()একই ভাবে।

নোট করুন যে এখানে টানা উপসংহারটি আমার নিজের কর্তন প্রতিফলিত করে। আমি যদি ভুল হয়ে থাকি তবে দয়া করে আমাকে সংশোধন করুন। এবং আপনি সম্ভবত একটি ভিন্ন এবং আরও ভাল সিদ্ধান্তে পৌঁছেছেন। যদি জিনিসটি এরকম হয় তবে দয়া করে আমাদের জানান। কে জানে? সম্ভবত আপনার সেরা। প্রবাদটি যেমন রয়েছে , "তত তাত্পর্য, ততই মুক্তির উপায় to" :)

https://sxbook.blogspot.com/2018/12/wpregisterscript-when-to-use.html


আপনার ব্যাখ্যাটি আমি সবচেয়ে ভাল পড়েছি। স্ক্রিপ্টগুলি নিবন্ধকরণ করা কেন গুরুত্বপূর্ণ তা আমি এখন বুঝতে পারি। ধন্যবাদ!
জি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.