"প্লাগিন সক্রিয়" বার্তা ডিফল্ট পরিবর্তন করা হচ্ছে


11

যখনই ওয়ার্ডপ্রেসে কোনও প্রশাসক কোনও প্লাগইন সক্রিয় করেন, প্লাগইন পৃষ্ঠার পুনরায় লোডের পরে, "প্লাগইন অ্যাক্টিভেটেড" রিপোর্ট সফল সক্রিয়করণের উপর একটি বিজ্ঞপ্তি উপস্থিত হবে।

প্লাগিন অ্যাক্টিভেটেড বার্তার স্ক্রিনশট

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

সম্পর্কিত প্রশ্নগুলি:

প্রতিলিপি:

পাইটারকে ধন্যবাদ জানার জন্য:

অতিরিক্ত সম্পদ:

বিঃদ্রঃ

মনে রাখবেন যে যদিও 'গেটেক্সটেক্সট' ফিল্টারটি কেবলমাত্র ফাংশনটিতে কল করার সময় প্রয়োগ করা হয় translate(), আই 18n.php এtranslate() কার্যত অন্য সমস্ত আই 18 এন ফাংশন দ্বারা ব্যবহৃত হয় । " গেটেক্সটেক্স সিনট্যাক্স " এ এই পোস্টে এখানে তালিকাভুক্ত সমস্ত ফাংশন এর মধ্যে রয়েছে ।


এই প্রশ্নটি দেখুন এবং দেখুন stackoverflow.com/q/14095642/1908141
পিটার গুজন

উত্তর:


14

আপনি এটি চেষ্টা করতে পারেন:

is_admin() && add_filter( 'gettext', 
    function( $translated_text, $untranslated_text, $domain )
    {
        $old = array(
            "Plugin <strong>activated</strong>.",
            "Selected plugins <strong>activated</strong>." 
        );

        $new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";

        if ( in_array( $untranslated_text, $old, true ) )
            $translated_text = $new;

        return $translated_text;
     }
, 99, 3 );

বার্তাটি আপনার পছন্দ অনুসারে পরিবর্তন করতে:

অনূদিত

আমরা এটি আরও পরিমার্জন করতে পারি:

আপনি যদি কেবলমাত্র /wp-admins/plugins.phpপৃষ্ঠায় ফিল্টারটি সক্রিয় করতে চান তবে পরিবর্তে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:

add_action( 'load-plugins.php',
    function(){
        add_filter( 'gettext', 'b2e_gettext', 99, 3 );
    }
);

সঙ্গে:

/**
 * Translate the "Plugin activated." string
 */
function b2e_gettext( $translated_text, $untranslated_text, $domain )
{
    $old = array(
        "Plugin <strong>activated</strong>.",
        "Selected plugins <strong>activated</strong>." 
    );

    $new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";

    if ( in_array( $untranslated_text, $old, true ) )
        {
            $translated_text = $new;
            remove_filter( current_filter(), __FUNCTION__, 99 );
        }
        return $translated_text;
}

যেখানে আমরা ম্যাচটি হওয়ার সাথে সাথে গেটেক্সটেক্স ফিল্টার কলব্যাক সরিয়ে ফেলি।

আমরা যদি সঠিক স্ট্রিংয়ের সাথে মেলে তার আগে তৈরি করা গেটেক্সটেক্স কলগুলি পরীক্ষা করতে চাই, আমরা এটি ব্যবহার করতে পারি:

/**
 * Debug gettext filter callback with counter
 */
function b2e_gettext_debug( $translated_text, $untranslated_text, $domain )
{
        static $counter = 0;
        $counter++;

        $old = "Plugin <strong>activated</strong>.";
        $new = "Captain: The Core is stable and the Plugin is <strong>activated</strong> at full Warp speed";
        if ( $untranslated_text === $old )
        {
            $translated_text = $new;
            printf( 'counter: %d - ', $counter );
            remove_filter( current_filter(), __FUNCTION__ , 99 );
        }
        return $translated_text;
}

এবং আমি 301আমার ইনস্টলের কল পাই : 301

আমি এটি কেবলমাত্র 10কলগুলিতে হ্রাস করতে পারি :

10

in_admin_headerহুকের মধ্যে হুকের মধ্যে গেটেক্সট ফিল্টার যুক্ত করে load-plugins.php:

add_action( 'load-plugins.php',
    function(){
        add_action( 'in_admin_header',
            function(){
                add_filter( 'gettext', 'b2e_gettext_debug', 99, 3 );
            }
        );
    }
);

লক্ষ্য করুন যে এটি প্লাগইনগুলি সক্রিয় হওয়ার পরে অভ্যন্তরীণ পুনর্নির্দেশের আগে gettext কলগুলি গণনা করবে না।

অভ্যন্তরীণ পুনর্নির্দেশের পরে আমাদের ফিল্টারটি সক্রিয় করতে আমরা প্লাগইনগুলি সক্রিয় হওয়ার সময় ব্যবহৃত জিইটি পরামিতিগুলি পরীক্ষা করতে পারি:

/**
 * Check if the GET parameters "activate" and "activate-multi" are set
 */
function b2e_is_activated()
{
    $return         = FALSE;
    $activate       = filter_input( INPUT_GET, 'activate',       FILTER_SANITIZE_STRING );
    $activate_multi = filter_input( INPUT_GET, 'activate-multi', FILTER_SANITIZE_STRING );

    if( ! empty( $activate ) || ! empty( $activate_multi ) )
        $return = TRUE;

    return $return;
}

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

b2e_is_activated() && add_filter( 'gettext', 'b2e_gettext', 99, 3 );

আগের কোড উদাহরণে।


1
আপনি এটি পেরেক দিয়েছিলেন, গেটেক্স ফাংশন। দুর্দান্ত পদক্ষেপ
পিটার গুজন

আপনি কেন লজিক্যাল অ্যান্ড অ্যান্ড অপারেটরের সাথে_এডমিন () এবং অ্যাড_ফিল্টার () একসাথে চেইন করলেন? সেখানে কোনও ধরণের শর্ট সার্কিট মূল্যায়ন চলছে যেখানে ব্যবহারকারী যদি প্রশাসক না হন, তবে অ্যাড_ফিল্টারটি চলবে না?
গেট_জিনিজার

1
দুর্দান্ত উত্তর! get_textফিল্টারটির সাথে পারফরম্যান্সের দিকে নজর রাখার জন্য আমি এটি +1 করব ।
কায়সার

1
হ্যাঁ এটি একইভাবে কাজ করা উচিত @ ব্ল্যাকহক
বার্গিরে

1
সমস্যাটি পুনঃনির্দেশিত। 'প্লাগইন' জিইটি পরামিতি পরীক্ষা করবেন? যদি উপলভ্য না হয় তবে চেক_এডমিন_রেফারারে লক্ষ্য করুন এবং 'অ্যাক্টিভেট-প্লাগইন_' লক্ষ্য করুন। $ একটি বিকল্প লিখতে প্লাগিন যা বলে যে এটি সক্রিয় হয়েছে এবং তারপরে এটি আবার প্লাগইনস.এফপি পৃষ্ঠা লোডে মুছুন। হতে পারে সম্প্রতি_অ্যাক্টিভেটেড বিকল্পটি সাহায্য করতে পারে? ওমর
বার্গিরে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.