অ্যাডমিনে বাহ্যিক স্ক্রিপ্টগুলি লোড করা হচ্ছে তবে কেবলমাত্র নির্দিষ্ট পোস্টের জন্য?


16

সুতরাং আমি এই সমস্যাটি চালিয়ে যাচ্ছি এবং আমি এই সমস্যাটি সমাধানের জন্য সর্বাধিক সহজ এবং সহজ সমাধানের সন্ধান করছি।

আমি অনেকগুলি বিভিন্ন প্রকল্পে কাস্টম পোস্ট ধরণের ব্যবহার করতে এসেছি এবং কাস্টম মেটাবক্সগুলি দিয়ে এগুলি প্রসারিত করেছি যা আমি এরপরে 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");
    }
   }
?> 

2
@ নেটকনস্ট্রাক্টর ডটকম: বিস্মিত হবেন না, অনেকে প্লাগইন লেখেন তারা প্রোগ্রাম শিখেন যাতে তারা প্লাগইন লিখতে পারেন এবং প্রোগ্রামিংয়ের পটভূমি খুব কম থাকে। তারা একটি চুলকানি স্ক্র্যাচ করছে, সেরা অনুশীলনগুলি অনুসরণ করছে না।
মাইকস্কিঙ্কেল

উত্তর:


14

প্রথমে, আমি ধরে নিলাম আপনি আপনার স্ক্রিপ্টগুলি লোড করতে ব্যবহার করছেনwp_enqueue_script() , তাই না?

এটি বলেছিল, যদি আমি আপনার প্রশ্নটি বুঝতে পারি তবে আপনার যা প্রয়োজন তা হ'ল নীচের মতো । অবশ্যই আপনার বিশদগুলির জন্য এটি সম্পাদনা করতে হবে, তবে এটি আপনাকে সাধারণ কাঠামো দেয়।

অ্যাডমিন পৃষ্ঠার সাথে ম্যাচের জন্য গ্লোবালটি পরীক্ষা করতে , এবং পোস্টের ধরণটি আপনি চাইছেন কিনা তা গ্লোবাল পরীক্ষা করার জন্য আমরা admin_initফাংশনটির সাথে ঝুঁকছি ।load_my_script()$pagenowedit.php$typenow

বাকিগুলি কেবলমাত্র বিশদ যা আপনি এখানে আরও পড়তে চাইলে এখানে পড়তে পারেন:

<?php
add_action('admin_init','load_my_script');
function load_my_script() {
  global $pagenow, $typenow;
  if ($pagenow=='edit.php' && $typenow=='my-custom-type') {
    $ss_url = get_bloginfo('stylesheet_directory');
    wp_enqueue_script('jquery');
    wp_enqueue_script('my-custom-script',"{$ss_url}/js/my-custom-script.js",array('jquery'));
  }
}

হালনাগাদ

আমি আপনার আপডেট জবাব দিচ্ছি দুর্ভাগ্যক্রমে ( যে কারণেই হোক )$typenow কোনও মূল্য নেই admin_initতাই আপনাকে নিম্নলিখিত উদাহরণে দেখতে পেলাম post_typeইউআরএল প্যারামিটারের উপর ভিত্তি করে পোস্টটি লোড করে নিতে হবে 'post'(আমি আপনার উদাহরণ থেকে উপরের রেখাটি এবং নীচের লাইনটি অনুলিপি করেছি) যাতে আপনি এটি কোথায় রাখবেন তা দেখতে পারেন):

<?php
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') {

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

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

আপডেট # 2

আমি ভেবেছিলাম আপনার এফ স্টেটমেন্টে আপনার কোনও অপারেটর অগ্রাধিকারের সমস্যা থাকতে পারে তবে আমি যখন পরীক্ষার আগে এটি পরীক্ষা না করেছিলাম। যদি এটি আপনার কথার মতো আচরণ করে চলেছে তবে আপনি অবশ্যই এর পরিবর্তে এটি চেষ্টা করে যান (দুঃখিত, এটি কাজ করে তা নিশ্চিত করার জন্য আমার এখনই এটি পরীক্ষা করার সময় নেই):

<?php
add_action('admin_init','load_my_script');
function load_my_script() {
  global $pagenow, $typenow;
  if (empty($typenow) && !empty($_GET['post'])) {
    $post = get_post($_GET['post']);
    $typenow = $post->post_type;
  }
  if (is_admin() && $typenow=='events') {
    if ($pagenow=='post-new.php' OR $pagenow=='post.php') { 
      $ss_url = get_bloginfo('stylesheet_directory');
      wp_enqueue_script('jquery');
      wp_enqueue_script('my-custom-script',"{$ss_url}/js/my-custom-script.js",array('jquery'));
    }
  }
}

হাই মাইক ... নীচে আমার মন্তব্য দেখুন ... দুঃখিত, আমি ভুল বাক্সে পোস্ট করেছি
নেটকন্সট্রাকটর.কম

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

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

দুঃখিত মাইক - আমার প্রাথমিক অনুমানটি আসলে ভুল ছিল। দেখে মনে হচ্ছে যে আপনি যে কোড সরবরাহ করেছেন সেটিতে জাভাস্ক্রিপ্ট আমার অন্যান্য পোস্টের মতো রয়েছে included আপনার পরামর্শ অনুসারে আমি গিয়ে স্ক্রিপ্টটি অন্তর্ভুক্ত করেছি। আপনি কি আবার এটি পর্যালোচনা করতে পারেন?
নেটকন্সট্রাক্টর.কম

1
ঠিক আছে ... সুতরাং আরও পর্যালোচনা করার পরে আমি জানতে পেরেছি যে আপনি যখন "নতুন" পোস্ট তৈরি করবেন তখন বাদে মাইকের কোডটি অবশ্যই সর্বত্র সঠিকভাবে কাজ করছে। আমি এখানে যা দেখছি তা থেকে জাভাস্ক্রিপ্টটি ভুলভাবে অন্তর্ভুক্ত করা হচ্ছে যখন আপনি ডিফল্ট ওয়ার্ডপ্রেস পৃষ্ঠাগুলি / পোস্টগুলির পাশাপাশি আপনার যে কোনও কাস্টম পোস্টের ধরণের জন্য একটি নতুন পৃষ্ঠা, নতুন পোস্ট তৈরি করেন। কোডটি কাজ করছে (জাভাস্ক্রিপ্টটি মেইন করা হচ্ছে না) আপনি যখন কোনও বিদ্যমান পোস্ট বা পৃষ্ঠা সম্পাদনা করেন যা হয় কোনও ডিফল্ট ওয়ার্ডপ্রেস পোস্ট বা পৃষ্ঠা বা কোনও কাস্টম পোস্টের ধরণ। এই সমস্যাটি সমাধানের জন্য কেউ কি প্রস্তাবিত পরিবর্তন সরবরাহ করতে পারেন?
নেটকন্সট্রাক্টর.কম

3

আমি ভেবেছিলাম আমি এখানে এমন কিছু কোড যুক্ত করব যা খনি সম্পর্কিত একটি সমস্যা সমাধান করে। আমার ক্ষেত্রে আমি জাভাস্ক্রিপ্ট এবং সিএসএস কেবল পৃষ্ঠাগুলি এবং পোস্টে এবং (সম্পাদনা এবং তৈরি) এবং অন্য কোথাও লোড করার চেষ্টা করছি।

আমি basename( $_SERVER[ 'SCRIPT_FILENAME' ] )ব্যাকএন্ডে কোথায় ছিল তা নির্ধারণ করার জন্য একটি কার্যক্ষম সমাধান পেয়েছি । আমি উদ্বিগ্ন ছিলাম যেহেতু $_SERVER[ 'SCRIPT_FILENAME' ]সার্ভারের প্রাপ্যতাটি সার্ভারে পরিবর্তিত হতে পারে (সার্ভারে $_SERVER[ 'SCRIPT_FILENAME' ]উপলব্ধ না হওয়ার জন্য এটি কতটা সম্ভব যে কেউ জানেন ?)

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

নিম্নলিখিত টুইটগুলি দিয়ে আমি এটি কাজ করতে পেরেছি এবং অন্যকে সাহায্য করার এবং এটির উন্নতির আশায় আমি এখানে এটি ভাগ করছি।

add_action( 'admin_init','imp_add_admin_scripts' );

function imp_add_admin_scripts() {

 $urljs = get_bloginfo( 'template_directory' ).IMP_JS;
 $urlcss =get_bloginfo( 'template_directory' ).IMP_STYLES;

 // Register our scripts
 wp_register_script('imp_jquerytools', $urljs.'jquery/imp_tabs_jquery.tools.min.js' );
 wp_register_style( 'rpanel-css', $urlcss.'impoweradmin.css' );


 global $pagenow, $typenow;
 if ( empty( $typenow ) && !empty( $_GET['post'] ) ) {
  $post = get_post( $_GET['post'] );
  $typenow = $post->post_type;
 } elseif ( empty( $typenow ) && ( $pagenow == 'post-new.php' ) ){ 
  $typenow = 'post';
 }

 if ( is_admin() && ( ( $typenow == 'page') || ( $typenow == 'post') ) ){

  if ( $pagenow == 'post-new.php' OR $pagenow == 'post.php' ) {

   wp_enqueue_script( 'imp_jquerytools' );
   wp_enqueue_style( 'rpanel-css' );

  }
 }
}

এরপরে আমি আমার থিম বিকল্প পৃষ্ঠায় কিছু স্ক্রিপ্ট সীমাবদ্ধ করার চেষ্টা করছি, যা ইউআরএল হিসাবে অ্যাডমিন.পিএপিপি? পৃষ্ঠা = থিমোপশনস হিসাবে আসে $ পেজনো এর ভিত্তিতে করা যায় না এবং আমি প্রতিটি অ্যাডমিনে স্ক্রিপ্টগুলি চাই না .pp পৃষ্ঠা, কেবলমাত্র সেই নির্দিষ্ট পৃষ্ঠায় (আমার থিম বিকল্প পৃষ্ঠা)

কেউ কীভাবে জানেন যে এটি কীভাবে সেরা হয়?

এবং আমার নিজের প্রশ্নের উত্তর দিতে:

if( is_admin() && ( $_GET['page'] == 'themeoptions' ) ){
  wp_enqueue_script( 'my-script' );

 }

3

জাস্টিন ট্যাডলক অনুসারে, কেবলমাত্র প্লাগইন বা অ্যাডমিনের স্ক্রিপ্টগুলির জন্য wp_enqueue_script এর বিপরীতে আপনাকে অ্যাডমিন_ইনকিউ_স্ক্রিপ্টগুলিতে ডুবানো উচিত:

http://justintadlock.com/archives/2011/07/12/how-to-load-javascript-in-the-wordpress-admin

add_action('admin_enqueue_scripts','load_admin_datapicker_script');

2

আমি জানি প্রশ্নের উত্তর দেওয়া হয়েছে। আমি মনে করি এটি একটি সহজ সমাধান।

<?php
add_action( 'admin_enqueue_scripts', 'load_admin_datapicker_script' );

function load_admin_datapicker_script() {

    $current_screen = get_current_screen();

    if ( $current_screen->post_type === '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");
    }

}
?> 

1

আমি এমন একটি সংস্করণ তৈরি করেছি যা $ টাইপনো ভেরিয়েবলটি ব্যবহার করে না:

function isPostEditPage($strCheckType="")
{
    //This function will test for a post type and return true if it is the edit page for this type
    //an empty value means checking for native (original, not custom) post type
    $strCheckType=$strCheckType==""?"post":$strCheckType;
    $blnReturn=false;
    if(is_Admin())  
    {
        $strPage=basename($_SERVER['SCRIPT_FILENAME']);
        switch($strPage)
        {
            case "post.php":
                if(isset($_GET["post"]))
                {
                    $intPostID=$_GET["post"];
                    $strThisPostType=get_post_type($intPostID);
                    if($strCheckType==$strThisPostType)
                    {
                        $blnReturn=true;
                    }
                }
            break;
            case "post-new.php":
                $strThisPostType="post";
                if(isset($_GET["post_type"]))
                {
                    $strThisPostType=$_GET["post_type"];
                }
                if($strCheckType==$strThisPostType)
                {
                    $blnReturn=true;
                }

            break;
        }
    }
    return $blnReturn;
}

গ্লোবালগুলি পরিবর্তন হবে না, তাই তারা ব্যবহার করা নিরাপদ। তদুপরি এমন হুকগুলি রয়েছে যা সেই পৃষ্ঠাগুলির জন্য সুনির্দিষ্ট, সুতরাং আপনার সেই ফাংশন এবং সেই প্রচেষ্টাটির প্রয়োজন নেই। সর্বশেষে তবে সর্বনিম্ন নয়: আপনি স্ট্রিংগুলি অ-কঠোর এবং অ-যোদা-স্টাইলও পরীক্ষা করছেন, তাই তারা ব্যর্থ হতে পারে। এছাড়াও $_GETশুধুমাত্র উপর নির্ভর করা ব্যর্থ হতে পারে। যাইহোক: ডাব্লুপিএসইতে স্বাগতম।
কায়সার

1

কি সম্পর্কে:

add_action( 'admin_init', 'scripts_admin' );

function scripts_admin($hook){

    global $typenow;
    if (empty($typenow) && !empty($_GET['post'])) {
         $post = get_post($_GET['post']);
             $typenow = $post->post_type;
     }
     if( 'post.php' != $hook && 'CUSTOMPOSTTYPE' != $typenow)
        return;

        wp_enqueue_script( 'google-api','http://maps.googleapis.com/maps/api/js?key=AIzaSyCD5TwT3vXLfYEv9WD-kOcEg7YQLcncsls&sensor=true', array( 'jquery' ) );


}

0

এই

admin অ্যাডমিন_ইনাইট চলাকালীন টাইপেনোর কোনও মান থাকে না

পুরোপুরি সঠিক নয়। এটি বেশিরভাগ পোস্ট টাইপ স্ক্রিনগুলিতে অ্যাড নিউ, ট্যাক্সোনমি তালিকা, বিভাগীয়করণ সম্পাদনা এবং এন্ট্রি তালিকার মতো অ্যাডমিন_আইনেটে একটি মান সেট করে তবে এটি "আপনার পোস্টস্টাইপ সম্পাদনা করুন" স্ক্রিনে নেই।

এছাড়াও, অন্যরা ইঙ্গিত হিসাবে, ডাব্লুপি অ্যাডমিনে স্টাইলশিট এবং স্ক্রিপ্ট যোগ করার জন্য সঠিক হুক ব্যবহার করুন admin_enqueue_scripts। আপনি যদি এই হুক ব্যবহার করেন তবে আপনাকে is_admin()এটি পরীক্ষা করার দরকার নেই যেহেতু এটি কেবলমাত্র ডাব্লুপি অ্যাডমিনে চালিত হয়েছে এবং আপনি বর্তমান পর্দা হিসাবে প্যারামিটার পাবেন। http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts

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