如何从WordPress管理面板禁用插件停用

关于WordPress最好的部分之一是插件的可用性,使您的工作轻松作为用户和开发人员。通常在为客户创建网站时,我们作为开发人员使用对于网站具有某些功能绝对至关重要的插件。最近,我们遇到了一个客户网站被破坏的问题。侧边栏没有完全加载,单个帖子页面上缺少元素,这些元素吓坏了。这个故事的底线是,他们刚接触WordPress的新员工之一停用了网站正常运行所需的一些插件。我们进入并激活了所有已停用的插件,但必须完成某些操作才能让我们在将来阻止此问题。在本文中,我们将向您展示如何从WordPress管理面板禁用插件停用(仅适用于特定插件)。

从理论上讲,您应该能够使用Justin Tadlock的Members插件并为用户创建新角色。但是,我们的客户不想走这条路。这是一个小型企业,他们聘请这位新员工来处理他们的社交媒体和博客,因此我们无法限制访问。他们想让他能够根据自己的意愿激活/停用插件。我们必须找到一种方法让我们的客户满意,而且我们还必须找到一种方法来防止这个问题在未来发生。谢天谢地,Steve Taylor发现了一个代码片段,可以从指定的插件中删除“Deactivate”链接。它还删除了所有插件的Edit链接,因为我们不希望我们的客户端通过编辑器编辑任何插件。

所以你要做的就是在主题的functions.php文件中粘贴以下代码:

  add_filter( "plugin_action_links", "disable_plugin_deactivation", 10, 4 );  function disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {  // Remove edit link for all  if ( array_key_exists( "edit", $actions ) )  unset( $actions["edit"] );  // Remove deactivate link for crucial plugins  if ( array_key_exists( "deactivate", $actions ) && in_array( $plugin_file, array(  "facebook-open-graph-meta-in-wordpress/fbogmeta.php",  "wp-pagenavi/wp-pagenavi.php"  )))  unset( $actions["deactivate"] );  return $actions;  }  

现在,您需要更改$ plugin_file的数组,您可以在其中看到指定插件的列表。该文件的路径是相对于/ wp-content / plugins /。所以在上面的例子中,’facebook-open-graph-meta-in-wordpress / fbogmeta.php‘是一个位于文件夹facebook-open-graph-meta-in-wordpress中的文件,位于plugins文件夹中。您可以更改列表以添加任意数量的插件。

此技巧是一种快捷方式,它实际上并不会阻止实际的停用。我们所做的就是隐藏Deactivate链接。拥有一点WordPress知识的任何人都可以生成一个停用URL并运行它。但是如果你的客户很狡猾,那么他们已经知道FTP是什么了,他们可以简单地删除那些插件。

你是否正在开发一个绝对需要特定插件的主题功能正常?然后不要忘记删除上面的代码。

关于WordPress最好的部分之一是插件的可用性,使您的工作轻松作为用户和开发人员。通常在为客户创建网站时,我们作为开发人员使用对于网站具有某些功能绝对至关重要的插件。最近,我们遇到了一个客户网站被破坏的问题。侧边栏没有完全加载,单个帖子页面上缺少元素,这些元素吓坏了。这个故事的底线是,他们刚接触WordPress的新员工之一停用了网站正常运行所需的一些插件。我们进入并激活了所有已停用的插件,但必须完成某些操作才能让我们在将来阻止此问题。在本文中,我们将向您展示如何从WordPress管理面板禁用插件停用(仅适用于特定插件)。

从理论上讲,您应该能够使用Justin Tadlock的Members插件并为用户创建新角色。但是,我们的客户不想走这条路。这是一个小型企业,他们聘请这位新员工来处理他们的社交媒体和博客,因此我们无法限制访问。他们想让他能够根据自己的意愿激活/停用插件。我们必须找到一种方法让我们的客户满意,而且我们还必须找到一种方法来防止这个问题在未来发生。谢天谢地,Steve Taylor发现了一个代码片段,可以从指定的插件中删除“Deactivate”链接。它还删除了所有插件的Edit链接,因为我们不希望我们的客户端通过编辑器编辑任何插件。

所以你要做的就是在主题的functions.php文件中粘贴以下代码:

  add_filter( "plugin_action_links", "disable_plugin_deactivation", 10, 4 );  function disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {  // Remove edit link for all  if ( array_key_exists( "edit", $actions ) )  unset( $actions["edit"] );  // Remove deactivate link for crucial plugins  if ( array_key_exists( "deactivate", $actions ) && in_array( $plugin_file, array(  "facebook-open-graph-meta-in-wordpress/fbogmeta.php",  "wp-pagenavi/wp-pagenavi.php"  )))  unset( $actions["deactivate"] );  return $actions;  }  

现在,您需要更改$ plugin_file的数组,您可以在其中看到指定插件的列表。该文件的路径是相对于/ wp-content / plugins /。所以在上面的例子中,’facebook-open-graph-meta-in-wordpress / fbogmeta.php‘是一个位于文件夹facebook-open-graph-meta-in-wordpress中的文件,位于plugins文件夹中。您可以更改列表以添加任意数量的插件。

此技巧是一种快捷方式,它实际上并不会阻止实际的停用。我们所做的就是隐藏Deactivate链接。拥有一点WordPress知识的任何人都可以生成一个停用URL并运行它。但是如果你的客户很狡猾,那么他们已经知道FTP是什么了,他们可以简单地删除那些插件。

你是否正在开发一个绝对需要特定插件的主题功能正常?然后不要忘记删除上面的代码。

相关推荐

发表回复

房先生
我们将24小时内回复。
2024-09-20 17:36:05
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
2781198
加我微信
[电话联系]
13585372227
[电子邮件]
chaoneo@163.com
取消

选择聊天工具: