পাদচরণে জাভাস্ক্রিপ্ট স্নিপেট কীভাবে যুক্ত করবেন তার জন্য jQuery প্রয়োজন


27

আমি জানি আমি ওয়ার্ডপ্রেসের ফুটারে একটি স্ক্রিপ্ট ফাইল যুক্ত করতে পারি যার জন্য এই কোডটি ব্যবহার করে jquery প্রয়োজন:

<?php
function my_scripts_method() {
   // register your script location, dependencies and version
   wp_register_script('custom_script',
       get_template_directory_uri() . '/js/custom_script.js',
       array('jquery'),
       '1.0',
       true);
   // enqueue the script
   wp_enqueue_script('custom_script');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>

তবে আমি যদি কোনও ফাইল না হয়ে কেবল জিকিউর ইনলাইনের একটি সাধারণ স্নিপেট যুক্ত করতে চাই তবে কী হয়। কিভাবে এই কাজ করা যেতে পারে.

সম্পাদন করা

আমি জানি আমি পাদলে কিছু যুক্ত করতে এই স্ক্রিপ্টটি ব্যবহার করতে পারি:

<?php
function myscript() {
?>
<script type="text/javascript">
 // This depends on jquery
</script>
<?php
}
add_action('wp_footer', 'myscript');

তবে যে স্ক্রিপ্টটি ব্যবহৃত হয় তা কীভাবে নির্দিষ্ট করে তা চালানোর জন্য jquery প্রয়োজন


এটি করার জন্য ফাংশনটিতে কোনও বিল্ট ইন নেই যা আমি জানি, এটি কারণ wp_register_scriptএবং wp_enqueue_scriptঅস্তিত্ব রয়েছে তবে আপনি jquery ব্যবহার করে পরীক্ষা করতে পারেন।
উইক

2
ডাউনভোটের জন্য দুঃখিত, তবে আমি মনে করি না আপনি আমার প্রশ্নটি বুঝতে পেরেছেন। আমি কোডেক্স পড়েছি এবং বিকল্পটি সম্পর্কে জানি। তবে আমি wp_enqueue_scriptফুটারে কোনও স্ক্রিপ্ট ফাইল চাই না, আমি ফুটারে একটি স্নিপেট যুক্ত করতে চাই যার জন্য jquery প্রয়োজন। আমি সরাসরি কোডেক্স থেকে নেওয়া উত্তরকে কমিয়ে দিয়েছি। আমি কোডেক্স পড়েছি, এবং কোনও উত্তর পাইনি, এজন্যই আমি একটি প্রশ্ন জিজ্ঞাসা করি। আপনি যদি আমাকে আবার কোডেক্সে পুনর্নির্দেশ করেন তবে আমি নীচে নামি।
সাইফ বেকহান

ধন্যবাদ উইক, আমি মনে করি এটি কেস, সঠিকভাবে প্রশ্নটি বোঝার জন্য আপনাকে ধন্যবাদ। আমি মনে করি স্ক্রিপ্টটি চালানো যেতে পারে তা নিশ্চিত করার পরিবর্তে আমি কেবল একটি বাহ্যিক জেএস স্ক্রিপ্ট ব্যবহার করব।
সাইফ বেকহান

উত্তর:


30

এটি করার সহজতম wp_enqueue_scriptউপায়টি হ'ল সাইফ এবং ভি0আইডলেস ইতিমধ্যে উল্লেখ করা ফুটার ক্রিয়াগুলির সংমিশ্রণ । আমি আমার থিম এবং প্লাগইনগুলিতে ঘন ঘন jQuery ব্যবহার করি তবে আমি অন্যান্য স্ক্রিপ্টগুলি ফুটারেও রেখেছি।

জিনিসগুলি সারি করার জন্য সর্বোত্তম উপায় হ'ল:

function myscript() {
?>
<script type="text/javascript">
  if ( undefined !== window.jQuery ) {
    // script dependent on jQuery
  }
</script>
<?php
}
add_action( 'wp_footer', 'myscript' );

function myscript_jquery() {
    wp_enqueue_script( 'jquery' );
}
add_action( 'wp_head' , 'myscript_jquery' );

তবে এই কোডটি স্নিপড করে ধরে নেওয়া হয়েছে যে আপনিই স্ক্রিপ্টটি সারিবদ্ধ করছেন, অর্থাৎ আপনি এটি নিজের প্লাগইন বা থিমে করছেন।

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

বিকল্প

ওয়ার্ডপ্রেস যখন স্ক্রিপ্টগুলির সাথে কাজ করে, তখন সেগুলি ট্র্যাক করে রাখার জন্য এটি অভ্যন্তরীণভাবে তাদের কোনও বস্তুতে লোড করে। অবজেক্টের ভিতরে মূলত 3 টি তালিকা রয়েছে:

  • নিবন্ধভুক্ত
  • কিউ
  • সম্পন্ন
  • করতে

যখন আপনি প্রথম নিবন্ধন একটি স্ক্রিপ্ট সঙ্গে wp_register_scripts()এটা নিবন্ধিত তালিকা মধ্যে স্থাপন করা হচ্ছে। আপনি যখন wp_enqueue_script()স্ক্রিপ্ট করবেন, এটি সারি তালিকায় অনুলিপি করা হবে। পৃষ্ঠাটিতে মুদ্রিত হওয়ার পরে এটি সম্পন্ন তালিকায় যুক্ত করা হবে।

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

wp_script_is()স্ক্রিপ্টটি কোথায় তালিকাভুক্ত রয়েছে তা যাচাই করতে এটি ব্যবহার করে।

function myscript() {
    if( wp_script_is( 'jquery', 'done' ) ) {
    ?>
    <script type="text/javascript">
      // script dependent on jQuery
    </script>
    <?php
    }
}
add_action( 'wp_footer', 'myscript' );

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


আপনার প্রদত্ত কোড স্নিপেট কি ওয়ার্ডপ্রেস প্লাগইন ডেভেলপমেন্ট স্ট্যান্ডার্ড দ্বারা গৃহীত হয়? যদি হ্যাঁ, তবে আমি এটি আমার প্লাগইনে ব্যবহার করব ... দয়া করে আমাকে এই সম্পর্কে একটি উত্তর দিন ...
লারাব

শেষ স্নিপেট? নং ওয়ার্ডপ্রেস প্লাগইনগুলির সর্বদা স্ক্রিপ্টের প্রয়োজনীয়তাগুলি সারানো উচিত । এইভাবে কুই সিস্টেমের বাইরে jQuery লোড করতে বাধ্য করা আপনার নিজের সাইটে যেখানে আপনার পরিবেশের 100% নিয়ন্ত্রণ রয়েছে কেবল এমন কিছু করা উচিত। এটি করা কোনও প্লাগইনের পক্ষে কখনই উপযুক্ত নয়।
ইমান

তাহলে আপনি কি আমাকে কিছু কাজের উদাহরণ দিতে পারেন দয়া করে ... ????
লারাব

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

12

ওয়ার্ডপ্রেস 4.5 যেহেতু আপনি দ্বারা ইনলাইন স্ক্রিপ্ট যুক্ত করতে পারেন wp_add_inline_script()। পাদচরণের জাভাস্ক্রিপ্ট স্নিপেট যুক্ত করতে jQuery প্রয়োজন, এই কোডটি আপনাকে সহায়তা করে

function enqueue_jquery_in_footer( &$scripts ) {

    if ( ! is_admin() )
        $scripts->add_data( 'jquery', 'group', 1 );
}
add_action( 'wp_default_scripts', 'enqueue_jquery_in_footer' );

function theme_prefix_enqueue_script() {
   if(!wp_script_is('jquery', 'done')) {
     wp_enqueue_script('jquery');
   }
   wp_add_inline_script( 'jquery-migrate', 'jQuery(document).ready(function(){});' );
}
add_action( 'wp_enqueue_scripts', 'theme_prefix_enqueue_script' );

ওয়ার্ডপ্রেস jquery সহ wp_add_inline_script


1

এর wp_footerমতো ক্রিয়াটি ব্যবহার করুন :

add_action( 'wp_footer', 'wpse33008');
function wpse33008() {
?>
<script type="text/javascript">
    /** INSERT SCRIPT HERE **/
</script>
<?php
}

1
এটি একটি ভাল উত্তর নয়। আমি জিজ্ঞাসা করেছি যে আমি কীভাবে স্ক্রিপ্টের প্রয়োজনীয় jQuery নির্দিষ্ট করতে পারি। যদি ব্যবহারকারীর জিকিউরি না থাকে তবে আপনার প্রয়োগটি চলবে না।
সাইফ বেকহান

0

আমি জানি ওপি jQuery এর উপর একটি প্রয়োজনীয়তা নির্দিষ্ট করতে চায়, এবং ওয়ার্ডপ্রেস লেখকদের উচিত ছিল স্নিপকে স্ক্রিপ্ট ফাইল সংলগ্ন সজ্জিত করার অনুমতি দেওয়া, কিন্তু তারা তা করেনি, তাই আমি এটি জোর করার চেষ্টা না করার পরামর্শ দিই। আপনি যদি আমার মতো কাতারে বা তার ক্রমটি নিয়ে কোনও ঝামেলা করতে না চান (কারণ আমি অন্যান্য প্লাগইনগুলি ব্যবহার করছি যা স্ক্রিপ্টগুলি একত্রিত করে এবং অনুকূলিত করে তোলে), তবে উত্তরটি হ'ল এই জাতীয় wp_footerক্রিয়াটি ব্যবহার করা :

<?php

add_action(
    'wp_footer'
    , function() {
        ?>
        <script>
            if (window.jQuery) {
                // your snippet
            }
        </script>
        <?php
    }
    , 21 # after enqueued footer scripts
);

-2

এটি করার জন্য আপনি wp_footerক্রিয়াটি ব্যবহার করতে পারেন । Wp_footer এর জন্য কোডেক্স পরীক্ষা করুন ।


আমি জানি, তবে আপনি কীভাবে সুনির্দিষ্ট করতে পারেন যে পাদলে আপনি যে স্ক্রিপ্ট যুক্ত করেছেন তা jquery এর উপর নির্ভর করে। আমার সম্পাদনা আরও স্পসিফিক হতে পরীক্ষা করুন।
সাইফ বেকহান

আপনি কি মানুষের উত্তরগুলি ভোট দেওয়ার আগে কোডেক্সের চারপাশে পড়তে বিরক্ত করেন? আপনি কি কখনও in_footerযুক্তি সম্পর্কে পড়েছেন wp_enqueue_script? এটি পড়ুন: কোডেক্স.ওয়ার্ডপ্রেস.আর / ফাংশন_রিফারেন্স / ডাব্লুপি_উদ্দীপক_স্ক্রিপ্ট । এটি আপনাকে wp_footerকর্মের সাথে কীভাবে ব্যবহার করবেন তা বলে tells
রটউইক গাঙ্গুরদে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.