删除Yoast SEO Post Metabox [关闭]


7

Yoasts SEO插件将一个metabox添加到帖子编辑屏幕。我正在尝试为非编辑者或更高版本的用户删除此内容。

我试过remove_meta_box对admin_init 进行呼叫,尝试删除$ wpseo_metabox上的操作,但无济于事。

我如何在无需用户干预的情况下删除此metabox(用户永远不应该知道metabox的存在,因此单击屏幕选项不是一个选项)


敢问我为什么要删除它?您是否特别想让他们做些什么?
Joost de Valk 2012年

2
因为有一类用户不知道SEO是什么,所以需要为他们简化事情(更重要的是,拥有现金的客户要求)。无论如何,具有编辑者级别privs的人都会审核和批准该帖子,因此,最好是由他们执行SEO部分,而不是由底层用户编写初始内容。
汤姆·J·诺维尔

这真的应该是评论,而不是答案,不想让其他人对你投反对票
Tom J Nowell

Answers:


16

remove_meta_box是一个注释:

因为您无法在添加元框之前将其删除,所以确保对remove_meta_box()的调用以正确的顺序进行很重要。

WordPress SEO在add_meta_boxes操作中添加了默认优先级为10的元框,该元框在之后运行admin_init,因此不会将其删除。相反,您需要加入add_meta_boxes,但优先级较低-11、12等。

function mamaduka_remove_metabox() {
    if ( ! current_user_can( 'edit_others_posts' ) )
        remove_meta_box( 'wpseo_meta', 'post', 'normal' );
}
add_action( 'add_meta_boxes', 'mamaduka_remove_metabox', 11 );

2

删除非管理员帐户的元框:

add_filter ( 'manage_edit-post_columns', 'rkv_remove_columns' );
function rkv_remove_columns( $columns ) {

   if ( ! current_user_can('administrator') ) { 

    unset( $columns['wpseo-score'] );
    unset( $columns['wpseo-title'] );
    unset( $columns['wpseo-metadesc'] );
    unset( $columns['wpseo-focuskw'] );
}
    return $columns;
}

在事件日历插件中的事件上不起作用-这对于常规帖子确实起作用。我不确定这是否适用于自定义帖子类型。
Radmation'1
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.