当前位置: 首页>>建站开发>>正文


如何弃用插件中使用的函数?

webfans 建站开发 , , , 去评论

问题描述

我在我的插件中使用的一个功能是使用可能与另一个函数冲突的名称(在另一个插件中使用)来污染全局范围。所以,我想我应该弃用它。但是我应该怎么做呢?

function foo() {
    echo 'bar';
}

我知道_deprecate_function(),但是会感激一个示例,显示我应该采取的所有步骤,以便从我的插件的核心中删除该功能。

Ref:https://developer.wordpress.org/reference/functions/_deprecated_function/

最佳解决方法

除了@Welcher的回答:

核心中有一些很好的”graveyard”示例,其中“functions come to die”。

您可以将它们用作指南,例如关于文件。

以下是wp-includes/deprecated.phppermalink_link()的一个例子

/**
 * Print the permalink of the current post in the loop.
 *
 * @since 0.71
 * @deprecated 1.2.0 Use the_permalink()
 * @see the_permalink()
 */
function permalink_link() {
        _deprecated_function( __FUNCTION__, '1.2', 'the_permalink()' );
        the_permalink();
}

以下是_deprecated_function函数的内联文档,它解释了输入参数:

/**
 * Mark a function as deprecated and inform when it has been used.
 *
 * There is a hook deprecated_function_run that will be called that can be used
 * to get the backtrace up to what file and function called the deprecated
 * function.
 *
 * The current behavior is to trigger a user error if WP_DEBUG is true.
 *
 * This function is to be used in every function that is deprecated.
 *
 * @since 2.5.0
 * @access private
 *
 * @param string $function    The function that was called.
 * @param string $version     The version of WordPress that deprecated the function.
 * @param string $replacement Optional. The function that should have been called. 
 *                            Default null.
 */

次佳解决方法

弃用并不总是等于被删除,它通常意味着该项目被标记为从API中删除EVENTUAL。这是一个外部调用的方法 – 就像其他插件或开发人员一样吗?如果插件仅在内部使用此方法,则可以安全地删除使用更好的名称功能替换它。

如果没有,我会创建一个更好的命名函数,并且命名错误的一个用__doing_it_wrong调用它 – 在codex中读取它这将使其他开发人员有时间更新他们对该方法的引用,你可以安全地删除该方法在更高版本中。

function badly_named() {

    __doing_it_wrong( 'badly_named', 'This method has been deprecated in favor of better_named_function' );

    /**
     * Call the better named method
     */
     better_named_function();
}

希望这可以帮助!

第三种解决方法

您创建了一个新插件,并建议您的用户迁移到该插件,因为当前的插件是EOL。

没有什么比插件和主题作者改变他们的公共API并试图将其视为“只是另一个小升级”更令人讨厌。由于您的用户实际上没有受到影响的问题,没有理由打破网站。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2702.html,转载请务必附带本地址声明。