从列表中隐藏WordPress插件

时间:2011-07-24 作者:SpyrosP

我正在为我的主题使用几个wordpress插件,以编程方式启用它们。

我不想让我的主题的用户被这些插件的插件更新所困扰,也不想在wordpress管理面板插件列表中查看它们。

有没有办法从自动版本检查器和插件列表中排除这些插件?

3 个回复
最合适的回答,由SO网友:t31os 整理而成

RE: Excluding plugins from update checks

是的,你可以从更新检查器中排除插件,没有很好的解决方案,也就是说,没有方便的过滤器可以说,这里为我排除这些插件,但这是可以做到的,马克·贾奎斯做到了a blog on it 不久前(这是一个相对容易的解决方案)。

/**
 * 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 );
资料来源:Excluding your plugin or theme from update checks.

<小时>

RE: Excluding plugins from the plugins list

是的,很有可能,我为自己编写了一个插件来实现这一点,但非常欢迎您使用该代码。

Plugin Hider - 直接从我的开发环境副本中提取,因此根据需要进行您自己的调整。

就我个人而言,我标记了所有我想隐藏的插件Author: hideme 这对我来说涵盖了所有内容(我不会分发任何内容,所以以这种方式标记它们不是问题)。

如果您尝试使用该插件,请单击菜单中的插件隐藏链接进行设置,其余的都会完成。当然,您可以在设置菜单项后注释掉创建该菜单项的代码,但请确保不要忘记您有一个隐藏其他插件(因此我有好几次让自己陷入圈套)。

希望能解决您的问题……)

SO网友:alisspers

你可以使用Must-use plugins (a.k.a mu-plugins) 为此目的。将插件移动到名为mu-plugins 在内部wp-content, 更新nag和停用它们的可能性将被禁用。

然而,这些插件仍将显示在插件列表中。

确保阅读WordPress Codex 在采取这种方法之前,必须考虑一些注意事项。

SO网友:Sean Lee

要禁用插件更新通知,请执行以下操作:http://wordpress.org/extend/plugins/disable-wordpress-plugin-updates/

或者只需在函数中添加以下代码段。php

remove_action( \'load-update-core.php\', \'wp_update_plugins\' );
add_filter( \'pre_site_transient_update_plugins\', create_function( \'$a\', "return null;" ) );
通过在函数中添加以下代码段,可以从后端删除插件菜单。php

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

结束

相关推荐

GPL and plugins

插件开发中心说:“您的插件必须与GPLv2兼容。”。但我发现Topsy插件在GPLv3下。http://www.gnu.org/licenses/rms-why-gplv3.html 声明GPLv2和GPLv3不兼容。那么这应该被允许吗?我想使用Topsy插件中的一些代码。那么,我应该在GPLv2或GPLv3下发布插件吗??