কিভাবে ওয়ার্ডপ্রেসের সাথে বাহ্যিক jQuery / জাভাস্ক্রিপ্ট ফাইল লিঙ্ক করবেন


15

সুতরাং আমি আমার পরবর্তী ডাব্লুপি থিমটি ভিত্তি করতে স্টার্কার্স ব্যবহার করছি এবং আমি একটি ছোট সমস্যা এনেছি, আমি header.phpফাইলটিতে আমার নিজের jQuery সংস্করণটি অন্তর্ভুক্ত করছি তবে ফায়ারব্যাগ ব্যবহার করে আমার সাইটটি পরিদর্শন করার সময় আমি খেয়াল করেছিলাম যে jquery দুবার ডাউনলোড হচ্ছে, আমি কিছুটা খনন করে লক্ষ্য করেছিলাম যে আমি কেবল ফাইলটিই অন্তর্ভুক্ত ছিল না তবে এটি ছিল wp_head()ফাংশন।

সমস্যাটি সমাধানের চেষ্টা করতে গিয়ে আমি শিরোনাম ফাইলে একটি মন্তব্য লক্ষ্য করেছি, যার মধ্যে উত্পন্ন উত্সটি টিউটি টেন থিম থেকে এসেছে:

/* Always have wp_head() just before the closing </head>
 * tag of your theme, or you will break many plugins, which
 * generally use this hook to add elements to <head>, such 
 * as styles, scripts, and meta tags
 */

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

আমি wp_head()ফাংশনে jQuery লাইনটি মন্তব্য করেছি তবে এটি অ্যাডমিন পৃষ্ঠার জন্য প্রয়োজন তাই আমাকে এটি পিছনে রাখতে হয়েছিল।

আমি jQuery এর গুগল সিডিএন সংস্করণ ব্যবহার করে (কমপক্ষে পরীক্ষা করা) ব্যবহার করতে চাই তবে এটিকে দুবার অন্তর্ভুক্ত করতে চাই না!

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

ধন্যবাদ!


এটি "ওয়ার্ডপ্রেসের সাথে বাহ্যিক jQuery / জাভাস্ক্রিপ্ট ফাইলগুলিতে কীভাবে লিঙ্ক করবেন" এর মতো কিছুতে পুনঃপ্রকাশ করা উচিত।
মাইকচিন্কেল

আমি সম্মত, আমি যে সমস্যার
বেন ইভারার্ড

উত্তর:


9

আপনার প্রশ্নের শব্দাবলি থেকে, আপনি অবশ্যই <script>আপনার টেমপ্লেটে ট্যাগ লিখে স্ক্রিপ্ট যুক্ত করতে হবে । wp_enqueue_script()আপনার টেমপ্লেটের মাধ্যমে নিজের স্ক্রিপ্টগুলি যুক্ত করুন functions.php, যথাযথভাবে jQuery এর উপর নির্ভরশীলতা নির্ধারণ করুন এবং wp_head()আপনার জন্য স্ক্রিপ্টগুলি যুক্ত করবেন।

function my_scripts() {
    wp_enqueue_script( 'my-sweet-script', get_bloginfo('template_directory') . '/script.js', array('jquery') );
}
add_action('template_redirect', 'my_scripts');

দেখুন প্যাড পৃষ্ঠা আরও তথ্যের জন্য।


আপনি এই ভেবে সঠিক হয়ে গেছেন যে আমি স্ক্রিপ্টগুলি ব্যবহার করছি <script> ট্যাগটি , এটি বিকল্পটি আমি সন্ধান করছিলাম, অনেক ধন্যবাদ! :-)
বেন ইভেরার্ড

3
আপনি যদি নিজের স্ক্রিপ্টটি কেবল সামনের প্রান্তে যুক্ত করতে চান তবে এর 'template_redirect'পরিবর্তে হুক করুন 'init'
জন পি ব্লচ

ভাল জিনিস, আমি আমার উত্তর আপডেট করব। আমি প্রায় enqueue মোড়ানো পরামর্শ is_admin()
আনিকা ব্যাকস্ট্রোম

আমি সাধারণত উপরে টেমপ্লেট ফাইলে স্ক্রিপ্ট সারিবদ্ধ get_header()মধ্যে এরকম functions.phpপ্রতিটি পৃষ্ঠায় যা প্রয়োজন নাও হতে পারে তে এটি সারিবদ্ধ হবে। আমার যদি বিশ্বব্যাপী একটি থাকে তবে আমি এটিকে header.phpআগেই wp_head()ডাকলাম is এইভাবে এনকুইগুলি যেখানে আপনি তাদের আশা করবেন<head>
জো হোয়েল

কখনও কখনও পৃষ্ঠার নীচে স্ক্রিপ্টগুলি যুক্ত করা ভাল। এটি কোডেক্স.ওয়ার্ডপ্রেস.আর্গ. / ফাংশন_রিফিশন / ডাব্লুপি_ইনকুই_স্ক্রিপ্টের (পঞ্চম, $ ইন_ফুটার) শেষ পরামিতি , এটি সত্য হিসাবে সেট করুন। যাদের আরও নিয়ন্ত্রণ প্রয়োজন তাদের জন্য সামান্য তথ্য।
hakre

7

আমি ওয়ার্ডপ্রেস সহ jQuery ব্যবহার করার জন্য 5 টিপস একবার দেখে পরামর্শ দিই । অন্যান্য জিনিসের মধ্যে এটি গুগলের লাইব্রেরি থেকে jQuery লোড করার জন্য প্রয়োজনীয় কোডটি দেখায়:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

আপনি গুগল গ্রন্থাগারগুলি ব্যবহার প্লাগইনটিও দেখতে পারেন check


1
এটি আসলে আরও ভাল উত্তর, যেহেতু এটি jQuery এর গুগল সিডিএন সংস্করণটি কীভাবে সজ্জিত করতে পারে তা দেখায়। যদিও জন অন্য জায়গায় যেমন পরামর্শ দিয়েছে, আপনি যদি কেবলমাত্র সামনের দিকে এগুলি করতে চান তবে template_redirectপরিবর্তে হুক করুন init
EAMAN

এটি কোথায় লোড হয় সে সম্পর্কে ভাল বিষয়। যদিও সত্যই, প্রশাসক অঞ্চলটি jQuery ব্যবহার করে, তাই না? যেভাবেই হোক, কীভাবে এটি নিয়ন্ত্রণ করতে হবে তা দেখানোর জন্য ধন্যবাদ।
ট্র্যাভিস নর্থক্যাট

হ্যাঁ আমি সবেমাত্র jquery / ডাব্লুপি পোস্টের জন্য 5 টি টিপস পেয়েছি, আপনার উত্তরের জন্য ধন্যবাদ :-)
বেন এভেরার্ড

ওয়ার্ডপ্রেস সহ jQuery ব্যবহারের জন্য 5 টিপস - লিঙ্কটি আর কাজ করছে না।
hakre

দ্রষ্টব্য: উদাহরণটিতে jQuery এর একটি "পুরানো" সংস্করণ অন্তর্ভুক্ত রয়েছে, বর্তমান ডাব্লুপি সংস্করণ (3.0.0) চলছে jQuery 1.4.2 ...
t31os

1

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

নীচের কোডটি নিশ্চিত করবে যে আপনার থিমটি সর্বদা jquery এর সঠিক সংস্করণটি লোড করে, প্রথমে ডাব্লুপি কোন সংস্করণ ব্যবহার করছে এবং তারপরে গুগল থেকে সেইটিকে লোড করে:

$wp_jquery_version = $GLOBALS['wp_scripts']->registered['jquery-core']->ver;
$jquery_version = ( $wp_jquery_version == '' ) ? '1.8.3' : $wp_jquery_version; // fallback, just in case 
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/'. $jquery_version .'/jquery.min.js', $jquery_version, false );
wp_enqueue_script('jquery');
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.