সুতরাং আমি এই সমস্যাটি চালিয়ে যাচ্ছি এবং আমি এই সমস্যাটি সমাধানের জন্য সর্বাধিক সহজ এবং সহজ সমাধানের সন্ধান করছি।
আমি অনেকগুলি বিভিন্ন প্রকল্পে কাস্টম পোস্ট ধরণের ব্যবহার করতে এসেছি এবং কাস্টম মেটাবক্সগুলি দিয়ে এগুলি প্রসারিত করেছি যা আমি এরপরে jQuery ইভেন্ট ক্যালেন্ডার নির্বাচকদের মতো কাস্টম স্ক্রিপ্টগুলি যুক্ত করে আরও প্রসারিত করেছি ... একটি মূল সমস্যা ব্যতীত এগুলি সমস্ত দুর্দান্ত কাজ করে ... আমি চাই না যে এই কাস্টম jQuery স্ক্রিপ্টগুলি প্রশাসকের প্রতিটি পৃষ্ঠায় লোড হোক।
আমি স্পেসিফিক পোস্ট টাইপের জন্য যখন "সম্পাদনা পোস্ট" পৃষ্ঠায় থাকি তখন এই কাস্টম jquery ক্ষেত্রগুলি লোড করার জন্য আমি মূলত কেবল একটি উপায় সন্ধান করি।
এখানে সেরা সমাধান কি?
আপডেট 1
প্রথমত, আপনাকে অনেক ধন্যবাদ।
আমি আসলেই হতবাক হয়েছি যে প্লাগইন বিকাশকারীরা এই জাতীয় জিনিসগুলি নিশ্চিত করতে চান না কারণ যেহেতু আমি এটি খুঁজে পাচ্ছি যে এটি বিভিন্ন প্লাগইনগুলির সাথে সমস্যাগুলির একটি মূল কারণ।
যদিও এ নিয়ে আমার আরও কিছু সমস্যা হচ্ছে। উদাহরণ স্বরূপ...
আমি যদি স্ক্রিপ্টটি এই জাতীয় বিবৃতিতে কল করতে পরিবর্তন করেছি:
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php' && $typenow=='events')
আপনি দেখতে পাচ্ছেন যে আমি জিনিসগুলি সেট আপ করার চেষ্টা করছি যাতে আমার স্ক্রিপ্টগুলি কেবল তখনই কল হয় যখন আমি "ইভেন্ট" পোস্টের ধরণের মধ্যে কোনও পোস্ট যুক্ত বা সম্পাদনা করি।
আমি চাই না যে স্ক্রিপ্টটি অন্য কোনও পৃষ্ঠাতে লোড হোক এবং এটিও চাই না যে এটি "ইভেন্টগুলি" পোস্টের ধরণের পৃষ্ঠার তালিকার উপরে চলে যাতে আমি যদি বিবৃতিটি সঠিক বলে মনে করি।
তবে সমস্যাটি মনে হচ্ছে যে স্ক্রিপ্টটি কেবল তখনই লোড হয়ে যায় যখন আমি এই পোস্টের মধ্যে একটি নতুন পোস্ট তৈরি করি তবে মনে হয় না যে আমি যখন কোনও বিদ্যমান পোস্ট সম্পাদনা করছি তখন এটি কাজ করবে work
আপনি কি এটি পরীক্ষা করে দেখতে পারেন এবং আমি কী করতে পারি যে আমি ভুল করতে পারি?
এখানে আমি সঠিক কোডটি ব্যবহার করছি ... সম্ভবত এটি করার আরও ভাল বা সহজ উপায় আছে?
<?php
// INCLUDE METABOX CUSTOM JQUERY DATEPICKER 2
add_action('admin_init','load_admin_datapicker_script');
function load_admin_datapicker_script() {
global $pagenow, $typenow;
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php' && $typenow=='events') {
$ss_url = get_bloginfo('stylesheet_directory');
wp_enqueue_script('jquery');
wp_enqueue_script('custom_js_jquery_ui',"{$ss_url}/admin-metabox/js/jquery-ui-1.7.1.custom.min.js",array('jquery'));
wp_enqueue_script('custom_js_daterangepicker',"{$ss_url}/admin-metabox/js/daterangepicker.jQuery.js",array('jquery'));
wp_enqueue_script('custom_js_custom',"{$ss_url}/admin-metabox/js/custom.js",array('jquery'),NULL,TRUE);
wp_enqueue_style('custom_css_daterangepicker',"{$ss_url}/admin-metabox/css/ui.daterangepicker.css");
wp_enqueue_style('custom_css_jquery_ui',"{$ss_url}/admin-metabox/css/redmond/jquery-ui-1.7.1.custom.css");
}
}
এছাড়াও ... যদি আমি তিনটি পোস্ট প্রকার যুক্ত করতে এবং প্রতিটি পোস্ট ধরণের জন্য বিভিন্ন জেএস স্ক্রিপ্টগুলি লোড করতে চাইতাম তবে আমি কেবল তিনটি পৃথক বারের উপরে কোডটি নকল করব বা এটি এটি করার একটি ভাল উপায় নয়? উদাহরণস্বরূপ ... কেবলমাত্র কল করা ভাল: বিশ্বব্যাপী now পেজানো, $ টাইপ; আমার ফাংশনগুলির ফাইলের শীর্ষে বা যখন আমি একবারের বেশি এটির সদৃশ করি তখন জিনিসগুলি জটিল হয়?
একই সম্পর্কিত একটি ভিন্ন সমস্যা নিয়ে ... আমি উদাহরণস্বরূপ "মাধ্যাকর্ষণ ফর্ম" প্লাগইনটি ব্যবহার করছি তবে আমি লক্ষ্য করেছি যে তাদের স্ক্রিপ্টগুলি অ্যাডমিনের প্রতিটি পৃষ্ঠায় চলমান যা অন্যান্য প্লাগইনগুলির সাথে সমস্যা সৃষ্টি করে। স্ক্রিপ্টগুলি কেবল যখন আমার প্রয়োজন হবে তখন লোড হবে তা নিশ্চিত করতে আমি কীভাবে তাদের স্ক্রিপ্টটি সংশোধন করব।
আপডেট 2
মাইকের (নীচে) প্রদত্ত কোডটি দিয়ে আমি আমার ফাংশন.এফপি ফাইলটি সংশোধন করেছি তবে মনে হয় যে আপনি কোনও নতুন পোস্ট বা পৃষ্ঠা তৈরি করার সময় প্রযোজ্য জাভাস্ক্রিপ্টটি এখনও অন্তর্ভুক্ত রয়েছে। এর অর্থ হ'ল আপনি যখন নতুন কোনও ডিফল্ট ওয়ার্ডপ্রেস পোস্ট / পৃষ্ঠা তৈরি করে একটি নতুন পোস্ট বা পৃষ্ঠা তৈরি করার চেষ্টা করছেন বা যখন আপনি কোনও নিজের পছন্দমতো পোস্টের ভিত্তিতে একটি নতুন পোস্ট / পৃষ্ঠা তৈরি করেন। মাইক আইএস দ্বারা প্রস্তাবিত কোডটি অন্যান্য সমস্ত অ্যাডমিন পৃষ্ঠায় কাজ করছে এবং আপনি যখন কোনও বিদ্যমান পোস্ট / পৃষ্ঠা বা কাস্টম পোস্টের ধরণ "সম্পাদনা" করেন তখন এটি কাজ করে। এই কাজটি সঠিক করার জন্য কোনও প্রস্তাবিত পরিবর্তন রয়েছে?
আমার বর্তমান কোডটি এখানে:
<?php
add_action('admin_init','load_admin_datapicker_script');
function load_admin_datapicker_script() {
global $pagenow, $typenow;
if (empty($typenow) && !empty($_GET['post'])) {
$post = get_post($_GET['post']);
$typenow = $post->post_type;
}
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php' && $typenow=='events') {
$ss_url = get_bloginfo('stylesheet_directory');
wp_enqueue_script('jquery');
wp_enqueue_script('custom_js_jquery_ui',"{$ss_url}/admin-metabox/js/jquery-ui-1.7.1.custom.min.js",array('jquery'));
wp_enqueue_script('custom_js_daterangepicker',"{$ss_url}/admin-metabox/js/daterangepicker.jQuery.js",array('jquery'));
wp_enqueue_script('custom_js_custom',"{$ss_url}/admin-metabox/js/custom.js",array('jquery'),NULL,TRUE);
wp_enqueue_style('custom_css_daterangepicker',"{$ss_url}/admin-metabox/css/ui.daterangepicker.css");
wp_enqueue_style('custom_css_jquery_ui',"{$ss_url}/admin-metabox/css/redmond/jquery-ui-1.7.1.custom.css");
}
}
?>