从用户角色的帖子创建页面中删除插件设置

时间:2020-05-27 作者:shimii

我想删除给定用户类型的帖子创建页面底部的插件设置。enter image description here我想从特定用户类型的帖子创建页面中删除“插件组织”下拉列表,如所附图像所示。有没有代码或插件可以做到这一点?

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

正如您所做的,第一步是直接联系插件作者。

如果它是中的插件。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();
    }
}
?>
然后,您可以继续更新原始插件-检查以确保他们不会更改其函数的名称或优先级,这很可能不会更改-并保留此插件,该插件仅使一个函数具有条件。

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register