web-dev-qa-db-fra.com

Masquer les plugins wordpress de la liste

J'utilise quelques plugins wordpress pour mon thème, ce qui les active par programmation.

Je ne voudrais pas que l'utilisateur de mon thème soit buggé avec les mises à jour de plugins pour ces plugins, ainsi que pour les visualiser dans les listes de plugins du panneau de gestion wordpress admin.

Est-il possible d'exclure ces plugins du vérificateur automatique de versions et de la liste des plugins?

5
SpyrosP

RE: Exclusion des plugins des vérifications de mise à jour

Oui, vous pouvez exclure les plugins du vérificateur de mise à jour, il n’ya pas de solution intéressante, c’est-à-dire. pas de filtre commode à dire, excluez-les ici pour moi, mais cela peut être fait, Mark Jaquith a fait un blog dessus il y a quelque temps (et c'est une solution relativement facile).

/**
 * FOR PLUGINS
*/
function cws_hidden_plugin_12345( $r, $url ) {
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
        return $r; // Not a plugin update request. Bail immediately.
    $plugins = unserialize( $r['body']['plugins'] );
    unset( $plugins->plugins[ plugin_basename( __FILE__ ) ] );
    unset( $plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ] );
    $r['body']['plugins'] = serialize( $plugins );
    return $r;
}

add_filter( 'http_request_args', 'cws_hidden_plugin_12345', 5, 2 );
/**
 * FOR THEMES
*/
function cws_hidden_theme_12345( $r, $url ) {
    if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
        return $r; // Not a theme update request. Bail immediately.
    $themes = unserialize( $r['body']['themes'] );
    unset( $themes[ get_option( 'template' ) ] );
    unset( $themes[ get_option( 'stylesheet' ) ] );
    $r['body']['themes'] = serialize( $themes );
    return $r;
}

add_filter( 'http_request_args', 'cws_hidden_theme_12345', 5, 2 );

Source: Exclure votre plugin ou votre thème des vérifications de mise à jour.


RE: Exclusion des plugins de la liste des plugins

Oui, c'est tout à fait possible, je me suis écrit un plugin pour faire cela, mais vous êtes plus que bienvenu dans le code.

Plugin Hider - tiré directement de la copie de mon environnement dev, faites donc vos propres ajustements si nécessaire.

Personnellement, je marque tous les plugins que je veux cacher avec Author: hideme et cela couvre tout pour moi (rien que je ne distribue, donc les marquer de cette façon ne pose pas de problème).

Si vous essayez le plugin, cliquez sur le lien Plugin Hider dans le menu pour le configurer, le reste sera fait. Vous pouvez bien sûr commenter le code qui crée l'élément de menu une fois que vous l'avez configuré, assurez-vous de ne pas oublier que vous avez un plugin qui en cache d'autres (à plusieurs reprises, je me suis mis à tourner en rond).


J'espère que cela répond à votre question ... :)

4
t31os

Vous pouvez utiliser Les plugins indispensables (a.k.a mu-plugins) à cet effet. En déplaçant les plugins dans un dossier appelé mu-plugins dans wp-content, la mise à jour et la possibilité de les désactiver seront désactivées.

Les plugins seront toutefois toujours affichés dans la liste des plugins.

Assurez-vous de lire dans le WordPress Codex sur le sujet avant de prendre cette approche car il y a certaines mises en garde à prendre en considération.

3
alisspers

Pour désactiver la notification de mise à jour du plugin: http://wordpress.org/extend/plugins/disable-wordpress-plugin-updates/

ou simplement ajouter l'extrait suivant dans functions.php

remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );

Vous pouvez supprimer le menu plugin du backend en ajoutant l'extrait suivant dans functions.php

add_action('admin_head', 'remove_menu');
function remove_menu() {
global $menu;
unset($menu[65]);
}
1
Sean Lee