অ্যাডমিন মেনু আইটেমে আপডেট নোটিফিকেশন বুদবুদ যুক্ত করবেন?


9

আমি আরও বোঝার জন্য এটি আবার শব্দ করেছি।

ঠিক আছে, আমার কাছে এমন একটি প্লাগইন রয়েছে যা দূরবর্তী পরিষেবা ব্যবহার করে যা আপডেটগুলি পরীক্ষা করে, অনেকটা ডিফল্ট ওয়ার্ডপ্রেস প্লাগইনগুলির মতো, এই ক্ষেত্রে এটি কেবলমাত্র একটি এক্সএমএল ফাইল পরীক্ষা করে।

এখানে চিত্র বর্ণনা লিখুনযখন কোনও আপডেট উপলব্ধ থাকে তখন আমি এই জাতীয় মেনু বুদবুদ দেখাতে চাই ।

এটি কেবলমাত্র "1" বা "সতর্কতা" এর মতো পাঠ্য প্রদর্শন করতে পারে, তাতে কিছু আসে যায় না।

যেহেতু আমার প্লাগইন একটি বিকল্প পৃষ্ঠা ব্যবহার করে (ব্যবহার করে add_options_page) ডিফল্ট "সেটিংস" সাবমেনুতে প্লাগইন সেটিংস প্রদর্শিত হয়।

আমার মনে হয় বুদ্বুদটি দেখাতে আমাকে নিম্নলিখিত সিএসএস যুক্ত করতে হবে,

<span class='update-plugins count-1' title='title'><span class='update-count'>1</span></span>

এবং গ্লোবাল টাই $submenu। সমস্যাটি হ'ল আমি মেনুটির জন্য হার্ড-কোডেড অ্যারের মানটি ব্যবহার করতে পারি না কারণ প্রতিটি সাইটের আলাদা আলাদা মান থাকবে।

সুতরাং আমি ব্যবহার করতে পারি না $submenu[80][10] .= <span class='update-plugins count-1' title='title'><span class='update-count'>1</span></span>

আমি কীভাবে আমার প্লাগিনগুলি সাবমেনু মান খুঁজে পেতে পারি, আমাকে কী অ্যারে থেকে লুপ করতে হবে এবং স্ট্রিংয়ের মানগুলি মিলাতে হবে?

এছাড়াও আমি মানগুলি হার্ড-কোডড করেও বুদবুদটি দেখাতে পেলাম না।

//adding plugin to menu
add_action('admin_menu', 'sec_plugin_checker');

function sec_plugin_checker() {
  add_options_page(' Plugin Checker', 'Plugin Check', 'activate_plugins', 
  'sec_plugin_check', 'sec_checker');


// the conditional where I want the bubble to appear

if (!empty($matches)){ 
    echo "Match found !<br />";

    global $submenu;
    foreach( $submenu as $item ) {

    $item[41][20] = sprintf( __( 'Updates %s', 'sec_plugin_checker' ),  
                "<span class='update-plugins count-1' title='title'>
                 <span class='update-count'>1</span></span>");  

       }
  }

এবং এখানে var_dump($submenu);দেখতে কেমন দেখাচ্ছে,

["options-general.php"]=>
array(9){
...

[41]=>
    array(4) {
      [0]=>
      string(20) "Plugin Check"
      [1]=>
      string(16) "activate_plugins"
      [2]=>
      string(21) "sec_plugin_check"
      [3]=>
      string(23) " Plugin Checker"

     ...

      }

এটার কারণ কি? আপনি ঠিক কি করতে চান?
জান বোনেক

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

হ্যাঁ ঠিক, আমি পর্দা যুক্ত করব।
উইক

ঠিক কীসের জন্য আপনি উপলভ্য আপডেটগুলি নির্দেশ করতে চান? ডাব্লুএপজিজি সংগ্রহস্থল-দ্বারা পরিচালিত থিম এবং প্লাগইনগুলির জন্য, এই আপডেট বিজ্ঞপ্তিটি স্বয়ংক্রিয়ভাবে পরিচালনা করা হবে।
চিপ বেনিেট

এটি একটি প্লাগইনের জন্য একটি কাস্টম ফাংশন, এটি অন্য পরিষেবা থেকে রিমোট আপডেট পায় এবং আমি একই আপডেট বিজ্ঞপ্তি কার্যকারিতা ব্যবহার করতে চাই।
উইক

উত্তর:


8

আপনি যখন ফোন করবেন তখনই আমি এটি করব add_options_page()। অভ্যন্তরীণ কাঠামোগুলির সাথে খেলার পরিবর্তে সমর্থিত এপিআই দিয়ে এটি করা সর্বদা ভাল।

প্লাগইন আপডেটেটর পর্যায়ক্রমে প্লাগইন স্থিতি পরীক্ষা করে এবং তারপরে ফলটি একটি ক্ষণস্থায়ী হিসাবে সংরক্ষণ করে । এর অর্থ হ'ল মেনুটি তৈরি হওয়ার সময় এটি কেবল এই ক্যাশেড স্ট্যাটাসটি পড়ে , এটি প্রতিটি পৃষ্ঠার লোডে পুরো চেক করে না। আপনি অনুরূপ কিছু করতে পারেন:

add_action( 'admin_menu', 'wpse15567_admin_menu' );
function wpse15567_admin_menu()
{
    $warnings = get_transient( 'wpse15567_warnings' );
    $warning_count = count( $warnings );
    $warning_title = esc_attr( sprintf( '%d plugin warnings', $warning_count ) );

    $menu_label = sprintf( __( 'Plugin Checker %s' ), "<span class='update-plugins count-$warning_count' title='$warning_title'><span class='update-count'>" . number_format_i18n($warning_count) . "</span></span>" );

    add_options_page( 'Plugin Check', $menu_label, 'activate_plugins', 'sec_plugin_check', 'sec_checker' );
}

নোটিফিকেশন বুদ্বুদ সহ মেনু আইটেম

আপনি যখন আসল সতর্কতা যাচাই করেন, আপনি ফলটি ক্ষণস্থায়ীতে সংরক্ষণ করেন যাতে এটি পরে পড়তে পারে:

if ( ! empty( $matches ) ) {
    set_transient( 'wpse15567_warnings', $matches );
}

লক্ষ্য করুন যে কোনও সতর্কতা না থাকলে আমি বিশেষ কিছু করি না। বুদ্বুদ প্রদর্শিত হয় না কারণ এটি ক্লাস পায় count-0, যা display: noneসিএসএসে রয়েছে


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