我知道这是一个老问题,但我想通过解决实际问题使这个页面更有用。这里的实际问题是 OP 无法current_user_can( 'manage_options' )
在他的插件中使用。使用该函数会引发常见的undefined function...
PHP 错误。发生这种情况是因为插件在 WP 核心完成加载之前被初始化。修复非常简单。在适当的时候加载插件是关键。
假设管理插件代码驻留在一个类MyPlugin
中,类的初始化应该被挂钩init
。以下是一种方法。
/**
* Plugin Class
*/
class MyPlugin{
public function __construct(){
/* all hooks and initialization stuff here */
/* only hook if user has appropriate permissions */
if(current_user_can('manage_options')){
add_action( 'admin_head', array($this, 'hide_post_page_options'));
}
}
function hide_post_page_options() {
// Set the display css property to none for add category and add tag functions
$hide_post_options = "
<style type=\"text/css\">
.jaxtag { display: none; }
#category-adder { display: none; }
</style>";
print($hide_post_options);
}
}
add_action('admin_init', function(){
$myplugin = new MyPlugin();
});
这是一种确保 wordpress 核心可用于插件功能的方法。
您可以在此处找到admin_init
文档。
PS 你应该考虑使用PHP HEREDOC。这是编写多行字符串的一种非常简单的方法。您的样式块可以重写如下
$hide_post_options = <<<HTML
<style type="text/css">
.jaxtag { display: none; }
#category-adder { display: none; }
</style>
HTML;
我希望它可以帮助某人。
谢谢。