কীভাবে কেবলমাত্র একটি সাইটের জন্য একটি নেটওয়ার্ক সক্ষম প্লাগইন অক্ষম করবেন?


22

আমি একটি (সম্ভাব্য) বৃহত্তর মাল্টিজাইট নেটওয়ার্ক স্থাপনের প্রক্রিয়াধীন এবং প্রয়োজনে সাইটগুলি যুক্ত এবং কনফিগার করার জন্য এখন এটি যথাসম্ভব সহজ করার চেষ্টা করছি। আমি বর্তমানে সেই পর্যায়ে আছি যেখানে আমি প্লাগিনগুলি নিয়ে কাজ করছি।

মাল্টিসাইটের সাহায্যে আপনি প্লাগিনগুলি সক্রিয় করতে পারেন এমন বিভিন্ন উপায় সম্পর্কে আমি অবগত

  • প্লাগইনটি এতে রাখুন /plugins, প্রতিটি সাইটে অদৃশ্যভাবে সক্রিয় করুন
  • প্লাগইনটি এতে রাখুন, সমস্ত সাইটে /pluginsএটি সক্রিয় করতে 'নেটওয়ার্ক অ্যাক্টিভেট' ব্যবহার করুন
  • প্লাগইনটিতে রাখুন /mu-plugins, প্রতিটি সাইটে স্বয়ংক্রিয়ভাবে সক্রিয় হয়

এখন আমি সেটিংস সঙ্গে বাজানো করছি এবং আমি সব সাইটগুলোতে সক্রিয় Akismet করতে চান কিন্তু এক বা দুই। আমি ভেবেছিলাম যে আমি প্লাগইনটি নেটওয়ার্ক চালু করতে এবং তারপরে এটি কোনও একক সাইটে নিষ্ক্রিয় করতে সক্ষম হব, তবে আমি তা করতে পারব না - যদি আমি নেটওয়ার্ক অ্যাক্টিভেট ব্যবহার করি তবে কেবলমাত্র 'নেটওয়ার্ক নিষ্ক্রিয়' করার বিকল্প রয়েছে - যা প্লাগইনকে অকার্যকর করে দেয় সমস্ত সাইট।

নেটওয়ার্ক অ্যাক্টিভেটের কার্যকর কার্যকারিতা পাওয়ার কোনও উপায় কি তবে এখনও সাইট-সাইট ভিত্তিতে প্লাগইনগুলি নিষ্ক্রিয় করতে সক্ষম হওয়ার সুবিধা রয়েছে?

উত্তর:


31

আপনি ফিল্টার ব্যবহার করতে পারেন site_option_*

উদাহরণস্বরূপ নিম্নলিখিত 2 আইডি সহ ব্লগে আকিসমেট অক্ষম করবে।

add_filter('site_option_active_sitewide_plugins', 'modify_sitewide_plugins');

function modify_sitewide_plugins($value) {
    global $current_blog;

    if( $current_blog->blog_id == 2 ) {
        unset($value['akismet/akismet.php']);
    }

    return $value;
}

1
ক্লিন, পিএইচপি-স্তরের সমাধান সরবরাহের জন্য +1 যা অতিরিক্ত প্লাগইন ইনস্টল করার প্রয়োজন ছাড়াই সমস্যার সমাধান করে - কারণ আমি একটি খাঁটি পাগল এবং ওয়ার্ডপ্রেসকে যতটা পরিষ্কার এবং প্লাগইন-যতটা সম্ভব কম ভালবাসি! :]
ট্রেড্ডার

1
এই কোডটি পিএইচপি ফাইলটিতে ফেলেছে mu-pluginsএবং স্বপ্নের মতো কাজ করে!
বুগলাগ

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

1
এছাড়াও, এই ফিল্টারটি প্রচুর পরিমাণে চালিত হয়, অ্যারেতে থাকা সূচকটি সেট না করার আগে সেট করা আছে কিনা তা আমি পরীক্ষা করে দেখব। প্রথমবারের পরে, এটি এমন অ্যারেতে চেষ্টা চালিয়ে যাবে যেখানে সেই আইটেমটি বিদ্যমান নেই। if ( isset($value['akismet/akismet.php']) ) { unset($value['akismet/akismet.php']); }
জেক

1
এটি এখনও 4.9.4 এ দুর্দান্ত কাজ করছে।
জেক

3

এই প্লাগইন: http://firestats.cc/wiki/WPMUPluginCommander

নেটওয়ার্ক অ্যাক্টিভেশন স্টাফকে বাইপাস করে এবং এটি নিজস্ব করে। এবং আপনাকে সাইটের ভিত্তিতে কোনও সাইটে প্লাগইন অক্ষম করতে দেয়।

আপডেট: দেখে মনে হচ্ছে এই প্লাগইনটি সাইটব্যাপী ট্যাগ্স প্লাগইনটি ভেঙে ফেলেছে, তাই কোনও প্রোডাকশন নেটওয়ার্কে চেষ্টা করার আগে সাবধান হন।


wordpress.org/plugins/plugin-commander - ইউআরএল পরিবর্তন হয়েছে। যদিও এই প্লাগইনটি এই মুহুর্তে বছরগুলিতে আপডেট করা হয়নি ...
জেক

3

মাল্টিসাইট / মাল্টিটাইম ইনস্টলের জন্য একটি নির্দিষ্ট থিমের জন্য একটি প্লাগইন অক্ষম করার জন্য আমার জন্য এখানে কী কাজ করেছে। আমি আমার থিমে ফাংশন.এফপিপি ফাইলের শীর্ষে এই কয়েকটি লাইন যুক্ত করেছি:

/**
 * Disable fancybox plugin for this theme, it breaks javascript
 */
function deactivate_plugin_conditional() {
    if ( is_plugin_active('fancybox-for-wordpress/fancybox.php') ) {
        deactivate_plugins('fancybox-for-wordpress/fancybox.php');
    }
}
add_action( 'muplugins_loaded', 'deactivate_plugin_conditional' );

আমি নিশ্চিত যে এটি কেবল মি-প্লাগইনগুলিতে কাজ করবে যা বেশ সীমাবদ্ধ। আমি init@ জিডিআর এর মতো করে এটি করব।
জেক

2

সক্রিয় প্লাগইনগুলি ডাব্লুপিপি [[ব্লগ_আইডি] _ ক্ষেত্রের 'সক্রিয়_প্লাগিনস' এবং 'সক্রিয়_সাইডওয়াইড_প্লাগিনস' wp_ [ব্লগ_আইডি] _সাইটমেটায় সঞ্চিত রয়েছে। এগুলি সিরিয়ালযুক্ত ক্ষেত্র তাই আপনি কী করছেন তা না জানলে এগুলি সম্পাদনা করবেন না।

এছাড়াও ডাব্লুপি-অ্যাডমিন \ প্লাগইন.এফপি দেখুন। একটি প্লাগইন লিখতে পারা সম্ভব যা এটি সেখানে ঘোষিত ফাংশনগুলি যেমন ইজ_প্লাগিন_এ্যাকটিভ () এবং অ্যাক্টিভেট_প্লাগিন () ব্যবহার করে যা করতে চায় তা করবে।

যাইহোক, আমি অনুমান করছি যে আপনি পিএইচপিতে দক্ষ, যা সম্ভবত এটি নাও হতে পারে।


2

Sorich87 এবং ব্যবহারকারীর 34365 এর উত্তরগুলি ওয়ার্ডপ্রেস 4.3 দিয়ে আমার পক্ষে কাজ করে নি। থিমের ফাংশন.এইচপিপি এটিকে যুক্ত করে কাজ করেছে:

function deactivate_plugin_conditional() {
    $deactivated_plugin_name = 'lazy-load/lazy-load.php';
    deactivate_plugins($deactivated_plugin_name, false, true);
}
add_action( 'init', 'deactivate_plugin_conditional' );

আমি নিশ্চিত করতে পারি যে পূর্ববর্তী আপডোভেটেড সমাধানগুলি আর কাজ করে না এবং @gdr এর সমাধান বাস্তবে কাজ করে।

আমি নিশ্চিত করতে পারি যে @ sorich87 এর সমাধান 4.4.1 এ দুর্দান্ত কাজ করে। আপনি ছেলেরা এটিকে এমনভাবে ব্যবহার করছেন না যা দৃশ্যত কাজ করে তবে এটি এখনও কার্যকর হয় works তবে এটি সম্ভবত মু-প্লাগইনগুলিতে কাজ করতে পারে এবং থিমটিতে নয়। এই বিকল্পটি থিমগুলিতে কাজ করবে। তবে নোট করুন যে এটি একটি প্লাগইন বনাম সোরিচ 8787 এর নিষ্ক্রিয় করে তোলে যা এটি সাইটে এটি জোর করে বন্ধ করে দেয়, তবে এখনও যদি ইচ্ছা হয় তবে এটি সাধারণত ব্যবহৃত হতে দেয়। আমি পরেরটি পছন্দ করি তবে তারা উভয়ই কার্যকর হতে পারে।
জেক

বাস্তবিক। আপনার সাইটের প্রথম সাইট (আইডি: 1) হলে @ sorich87 এর সমাধান পদ্ধতি কার্যকর হয় না। যদি এটি হয় তবে এটি আপনাকে প্লাগইন নেটওয়ার্ক সক্রিয় করার অনুমতি দেবে না। অন্য কোনও আইডি কাজ করে বলে মনে হচ্ছে।
জেক

এবং এই পদ্ধতিটি আমার জন্য একই কাজ করে। আপনি যদি আর আইডি = 1 তে সাইটের থিমটিতে থাকেন তবে প্লাগইন (গুলি) আর আরম্ভ করতে পারবেন না
জ্যাক

0

ডাব্লুপি 3-র বাক্সের বাইরে নয়, তবে আমার মনে হয়, বিকল্প_ ফিল্টারগুলি ব্যবহার করে বিকল্পটি ওভাররাইড করা সম্ভব।

এছাড়াও, আপনি कोर.ট্রেস.ওয়ার্ডপ্রেস.আর.গ্রে কোনও বৈশিষ্ট্য অনুরোধ হিসাবে পরামর্শটি যুক্ত করলে এটি মিষ্টি হবে।


0

মাল্টিসাইট নেটওয়ার্কের সমস্ত প্লাগইন হ্যান্ডেল করার সর্বোত্তম উপায় হ'ল "প্লাগইন কমান্ডার" আপনি এখানে দেখতে পারেন: http://wordpress.org/extend/plugins/plugin-commander/


-1

আমি প্লাগইনটি অক্ষম করতে পেরেছি তবে এটি এখনও মূল সাইট প্যানেলে ছিল। মূল সাইট থেকে সম্পূর্ণরূপে অপসারণের আমি যে সমাধান পেয়েছি তা হ'ল সাইটের প্লাগইনের মেইন.এফপি পরীক্ষা করা এবং এটি অনুসারে এটি অক্ষম করা:

global $current_blog;

// Only available to B
if( $current_blog->blog_id == 2 ) {


    define( 'AB_PATH', __DIR__ );

    include_once 'includes.php';

    //  plugin loaded stuff

    AB_Plugin::registerHooks();

    is_admin() ? new AB_Backend() : new AB_Frontend();

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