正如您所做的,第一步是直接联系插件作者。
如果它是中的插件。org repo,您也可以尝试在插件的支持页面上提问。社区中的其他人可能会看到这一点并提供帮助,尽管这可能需要一段时间。(如果它不在.org上,可能仍然有公开讨论或提问板可用,所以请将其查找出来。)
下一步要做的事情是查看代码本身,看看是否可以确定如何将此部分添加到编辑器中,以及作者是否提供了一些内置方式使其具有条件。
如果他们没有以某种方式构建以满足您的需求,您可以自己编写更改代码,也可以雇佣其他人这样做。然后,您将希望将此更改作为请求提交给作者。最好的情况是,他们将接受更改,并且它将成为插件的一部分,因此您可以继续更新它。最糟糕的情况是,他们从不接受更改,并且只要您需要插件,您就需要在每次插件有可用更新时手动添加更改,或者只是将其作为一个分支(您自己的完全独立的版本,您需要自己进行安全性和兼容性更新)进行维护。
更具体地说:
你可以打电话remove_action()
为此wppb_content_restriction_add_meta_box()
在您自己的自定义插件中运行。然后添加一个新的add_action()
将您的条件放在其中-检查用户是否具有特定功能-如果它符合您的标准,则重新挂钩函数。
这取决于他们在哪里钩住了该函数-您需要检查,因为它可能不是init
- 但这里有一些代码可以帮助您开始。(您需要确定要检查的功能,以便将目标锁定在所需的用户;您需要检查挂钩和优先级,但这应该接近您要查找的功能。)
<?php
/* Plugin Name: Make Metabox Conditional
*/
// First, remove the action completely
add_action(\'init\', \'wpse_367691_unhook\', 11);
function wpse_367691_unhook() {
remove_action(\'init\', \'wppb_content_restriction_add_meta_box\', 15);
}
// Now, add your own action which will include the conditional
add_action(\'init\', \'wpse_367691_rehook, 20);
function wpse_367691_rehook() {
// If the current user can publish Posts
// (change this capability to target users who should see the box)
if(current_user_can(\'publish_posts\')) {
wppb_content_restriction_add_meta_box();
}
}
?>
然后,您可以继续更新原始插件-检查以确保他们不会更改其函数的名称或优先级,这很可能不会更改-并保留此插件,该插件仅使一个函数具有条件。