মুলতুবি আইটেমগুলির জন্য একাধিক সিপিটি মেনুগুলিতে আপডেট-মত বিজ্ঞপ্তি বুদ্বুদ রাখুন


9

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

আমি এই থ্রেডটি পেয়েছি , তবে সেখান থেকে কোথায় যাব, তা পুরোপুরি নিশ্চিত নয়।

যে পরিষ্কার ঝরঝরে হবে; ব্যবহারকারী হিসাবে উত্পন্ন সামগ্রী (কাস্টম পোস্ট প্রকার) ব্যবহার করে এমন একটি সাইটে আমার এই বৈশিষ্ট্যটি যেমন প্রয়োজন need ব্যবহারকারীরা যখনই একটি নতুন সিপিটি জমা দেয়, এর স্থিতিটি "মুলতুবি পর্যালোচনা" তে সেট করা থাকে এবং আমি চাইছি সাইট প্রশাসকরা মেনুতে খুব শীঘ্র নজর রাখুন কতগুলি আইটেমের দৃষ্টি আকর্ষণ করা প্রয়োজন তা দেখার জন্য।

সম্পাদনা: আমার এখন এই কোডটি রয়েছে:

// buuble notifications for custom posts with status pending
add_action( 'admin_menu', 'add_pending_bubble' );

function add_pending_bubble() {
    global $menu;

    $custom_post_count = wp_count_posts('custom-post-name');
    $custom_post_pending_count = $custom_post_count->pending;

    if ( $custom_post_pending_count ) {
        foreach ( $menu as $key => $value ) {
            if ( $menu[$key][2] == 'edit.php?post_type=custom-post-name' ) {
                $menu[$key][0] .= ' <span class="update-plugins count-' . $custom_post_pending_count . '"><span class="plugin-count">' . $custom_post_pending_count . '</span></span>';
                return;
            }
        }
    }
}

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


আপনার লিঙ্কের উত্তরটি এটি বেশ ভালভাবে ব্যাখ্যা করেছে, আপনি তার পরিবর্তে মুলতুবি থাকা আইটেমগুলি আপনার মামলার জন্য একটি ক্ষণস্থায়ী জায়গায় সংরক্ষণ করবেন, আপনার কী কোড আছে?
উইক

এই অন্য একটি পরীক্ষা করুন । তবে, হ্যাঁ, দয়া করে কোডটি নিয়ে পরীক্ষা করে দেখার চেষ্টা করুন এবং এখানে নিজের তদন্তটি পোস্ট করুন;)
ব্রাসোফিলো ২৩:

@ উইক আমি আমার প্রশ্ন আপডেট করেছি।
হাসান

উত্তর:


12

আমি পোস্টের ধরণের তালিকার মাধ্যমে এই কাজটি পুনরাবৃত্তি করেছি এবং $menuগৌণ ফাংশনটি ব্যবহার করে (পোস্টের মাধ্যমে সঠিকভাবে কীটিকে $menuবস্তুর মাধ্যমে পুনরায় পুনরুক্ত করার পরিবর্তে ) সঠিক কী চিহ্নিত করতে চাইছি ।

মুলতুবি পোস্ট বুদবুদ

ফাংশন রেফারেন্স: get_post_typesএবং wp_count_posts

add_action( 'admin_menu', 'pending_posts_bubble_wpse_89028', 999 );

function pending_posts_bubble_wpse_89028() 
{
    global $menu;

    // Get all post types and remove Attachments from the list
    // Add '_builtin' => false to exclude Posts and Pages
    $args = array( 'public' => true ); 
    $post_types = get_post_types( $args );
    unset( $post_types['attachment'] );

    foreach( $post_types as $pt )
    {
        // Count posts
        $cpt_count = wp_count_posts( $pt );

        if ( $cpt_count->pending ) 
        {
            // Menu link suffix, Post is different from the rest
            $suffix = ( 'post' == $pt ) ? '' : "?post_type=$pt";

            // Locate the key of 
            $key = recursive_array_search_php_91365( "edit.php$suffix", $menu );

            // Not found, just in case 
            if( !$key )
                return;

            // Modify menu item
            $menu[$key][0] .= sprintf(
                '<span class="update-plugins count-%1$s" style="background-color:white;color:black"><span class="plugin-count">%1$s</span></span>',
                $cpt_count->pending 
            );
        }
    }
}

// http://www.php.net/manual/en/function.array-search.php#91365
function recursive_array_search_php_91365( $needle, $haystack ) 
{
    foreach( $haystack as $key => $value ) 
    {
        $current_key = $key;
        if( 
            $needle === $value 
            OR ( 
                is_array( $value )
                && recursive_array_search_php_91365( $needle, $value ) !== false 
            )
        ) 
        {
            return $current_key;
        }
    }
    return false;
}

ওহ, হ্যাঁ - যে কাজ করে! যদিও কিছু কারণে, যখন আমি সম্পর্কিত সিপিটি মেনু আইটেমটিতে ক্লিক করি তখন বুদবুদগুলি অদৃশ্য হয়ে যায়, তবে আমি যখন ডাব্লুপি-অ্যাডমিনের অন্যান্য অঞ্চলে থাকি তখন তারা আবার উপস্থিত হয়। এটি নিয়ে মাথা ঘামাবে না, সমস্যা সমাধান হয়েছে।
হাসান

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

আমি সন্দেহ করি এটি ডাব্লুপিএমএল এর কারণে। দ্বিভাষিক ওয়েবসাইট পরিচালনা করতে এটি ব্যবহার করে আমার কাছে প্রতিটি পোস্টের (সিপিটি) মূলত 2 টি সংস্করণ থাকে। যে কারণে আমি মাঝে মাঝে বুদ্বুদ 2 দেখছি যেখানে আসলে 1 টি মুলতুবি পোস্ট আছে; কারণ উভয় পোস্টই তাদের স্ট্যাটাসগুলি সিঙ্ক্রোনাইজ করে। আরে, আপনার হয়ে গেলে প্লাগইন সম্পর্কে আমাকে জানান: ডি
হাসান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.