Hoe Plug-in deactivering uit te schakelen van WordPress Admin Panel
Een van de beste onderdelen van WordPress is de beschikbaarheid van plug-ins die uw taak eenvoudig maken als gebruiker en als ontwikkelaar. Vaak maken we als ontwikkelaars bij het maken van sites voor klanten gebruik van plug-ins die absoluut cruciaal zijn voor de site om bepaalde functionaliteiten te hebben. Onlangs kwamen we een probleem tegen waar een site van onze klant kapot was. De zijbalk is niet volledig geladen, er waren elementen op de enkele berichtpagina die hen uit de gratie brachten. De bottom line van dit verhaal was dat een van hun nieuwe medewerkers die nieuw was in WordPress enkele van de plug-ins deactiveerde die nodig waren om de site naar behoren te laten werken. We gingen naar binnen en activeerden alle plug-ins die waren gedeactiveerd, maar er moest iets gebeuren om dit probleem in de toekomst te voorkomen. In dit artikel laten we u zien hoe u de deactivering van plug-ins uitschakelt in WordPress Admin Panel (alleen voor specifieke plug-ins).
Theoretisch zou je in staat moeten zijn om de leden-plugin van Justin Tadlock te gebruiken en een nieuwe rol voor gebruikers te creëren. De klant die we hadden wilde deze route echter niet uitvoeren. Het is een klein bedrijf en ze hebben deze nieuwe medewerker aangenomen om met hun sociale media en blog om te gaan, dus we kunnen de toegang niet beperken. Ze wilden hem de mogelijkheid geven om plug-ins op zijn wil te activeren / deactiveren. We moesten een manier vinden om onze klant tevreden te houden, en we moesten ook een manier vinden om dit probleem in de toekomst te voorkomen. Gelukkig hebben we een fragment gevonden waarmee je de link "Deactivate" uit gespecificeerde plug-ins kunt verwijderen. Het verwijdert ook de koppeling Bewerken voor alle plug-ins, omdat we niet wilden dat onze client plug-ins via de editor bewerkt.
Dus alles wat je hoeft te doen is de volgende codes in het functions.php bestand van je thema te plakken:
add_filter ('plugin_action_links', 'disable_plugin_deactivation', 10, 4); functie disable_plugin_deactivation ($ acties, $ plugin_file, $ plugin_data, $ context) // Verwijder de edit link voor alle if (array_key_exists ('edit', $ actions)) unset ($ actions ['edit']); // Verwijder deactivate link voor cruciale plug-ins als (array_key_exists ('deactivate', $ actions) && in_array ($ plugin_file, array ('facebook-open-graph-meta-in-wordpress / fbogmeta.php', 'wp-pagenavi / wp-pagenavi.php '))) niet ingesteld ($ acties [' deactiveren ']); return $ acties;
Nu moet je de array van $ plugin_file veranderen waar je de lijst met gespecificeerde plug-ins ziet. Het pad van het bestand is relatief tot / wp-content / plugins /. Dus in het bovenstaande voorbeeld is 'facebook-open-graph-meta-in-wordpress / fbogmeta.php' een bestand in de map facebook-open-graph-meta-in-wordpress dat zich in de map plug-ins bevindt. U kunt de lijst wijzigen om zoveel plug-ins toe te voegen als u wilt.
Deze truc is een snelkoppeling en het voorkomt feitelijk niet de deactivering. Het enige wat we doen is de Deactivate-link verbergen. Iedereen met een beetje kennis van WordPress kan een deactiverings-URL genereren en deze uitvoeren. Maar als je cliënt zo slim is om dat te doen, dan weten ze al wat FTP is en kunnen ze de plug-ins gewoon verwijderen.
Werk je aan een thema dat absoluut een specifieke plug-in vereist om goed te laten werken? Vergeet dan niet om de code hierboven te laten vallen.