Dacă folosești funcționalitatea de CMS a WordPress pentru a crea site-uri pentru clienți, probabil știi cât de curioși sunt unii dintre ei și de prea multe ori te-ai trezit cu tema sau pluginuri dezactivate. Astfel site-ul își va pierde din funcționalitate și fără designul personalizat la care ai muncit.
Copy/paste în functions.php pentru a opri editarea și dezactivarea pluginurilor WordPress
add_filter( 'plugin_action_links', 'slt_lock_plugins', 10, 4 );
function slt_lock_plugins( $actions, $plugin_file, $plugin_data, $context ) {
// Remove edit link for all
if ( array_key_exists( 'edit', $actions ) )
unset( $actions['edit'] );
// Remove deactivate link for crucial plugins
if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
'slt-custom-fields/slt-custom-fields.php',
'slt-file-select/slt-file-select.php',
'slt-simple-events/slt-simple-events.php',
'slt-widgets/slt-widgets.php'
)))
unset( $actions['deactivate'] );
return $actions;
}
Pentru a selecta un anumit plugin trebuie să introduci calea relativă la wp-content/plugins către fișierul principal al pluginului. De exemplu pentru pluginul antispam Akismet aceasta este akismet/akismet.php – caută fișierul care are exact la început declarațiile privind numele, descrierea și autorului pluginului. Înlocuiește array-ul din codul de mai sus și completează-l cu oricâte de multe pluginuri esențiale pentru buna funcționare a site-ului.
La fel pentru a opri editarea și schimbarea temei curente WordPress folosește acest cod
add_action( 'admin_init', 'slt_lock_theme' );
function slt_lock_theme() {
global $submenu, $userdata;
get_currentuserinfo();
if ( $userdata->ID != 1 ) {
unset( $submenu['themes.php'][5] );
unset( $submenu['themes.php'][15] );
}
}
Meniul Themes și submeniul Themes – Editor va fi disponibil doar pentru utilizatorul ID=1 care, în mod normal, ar trebui să fie developerul acelui site ce rulează sub WordPress.
Codul via Steve Taylor.