使插件具有唯一性,以避免与同名插件冲突

时间:2015-08-27 作者:Danil Solodunov

我有一个插件,它与上传到wordpress的其他插件同名。org
如何使其唯一,使其不与上载到wordpress的其他插件共享“查看详情”链接和自动更新。组织?考虑到我插件的名称has to be exactly 已命名,并且cannot 被改变
我已经尝试将此代码添加到myplugin。php:

add_filter( \'site_transient_update_plugins\', \'filter_plugin_updates\' );
function filter_plugin_updates( $value ) {
if (!empty($value)) {
    unset( $value->response[\'myplugin/myplugin.php\'] );
    return $value;
   }
}
这将删除此插件的更新通知,但仅当它处于活动状态时,我需要完全删除它with “查看详情”链接
另外,我的插件是私有的,不会出现在wordpress存储库中,也不需要自动更新<有什么建议吗?谢谢

2 个回复
SO网友:user1318520

是否需要“查看详细信息”链接?它不应该出现,除非它是一个WP托管插件。你能不能随便给插件命名,但在admin中用JS来更改它

function my_enqueue($hook) {
if ( \'plugins.php\' != $hook ) {
    return;
}

wp_enqueue_script( \'my_custom_script\', plugin_dir_url( __FILE__ ) . \'changeName.js\', array( \'jquery\' ), \'1\', true );
}
add_action( \'admin_enqueue_scripts\', \'my_enqueue\' );
您的changeName。js可以如下所示:

jQuery("#pluginId").html("Plugin Name the PM Likes");

SO网友:bueltge

如果你的插件不在官方的wp插件库中,那么在插件中添加一个小功能,将其从更新例程中排除。WordPress搜索更新或此插件没有帮助。

下面的来源可以帮助您。将其包含在插件中,以停用自定义插件的更新检查,主题中的性能和与其他插件的冗余。

add_filter( \'site_transient_update_plugins\', \'fb_remove_update_notifications\' );
// Remove update notice for forked plugins.
function fb_remove_update_notifications($value) {

    if ( isset( $value ) && is_object( $value ) ) {
        unset( $value->response[ plugin_basename( __FILE__ ) ] );
    }

    return $value;
}
但您有权,它只在源处于活动状态时起作用。对于非活动插件,您无法通过源代码进行帮助。唯一的方法是用一个字符串来表示插件名和文件名,还有一个前缀,现在和功能中很少有。如果不能包含源代码,则无法更改核心功能。