Yoast的WordPress SEO:在非管理员的帖子中隐藏Meta框

时间:2012-10-29 作者:Audrius

我有一个多作者的网站,我不太喜欢允许所有成员在他们发布的帖子中输入SEO详细信息。我想这将是可见的,只有该网站的管理员。有什么想法吗?

5 个回复
SO网友:Adam

它没有在Yoast SEO插件网站的API文档中说明ID 我没有安装Yoast的副本,但根据yoas-plugin-dir/admin/class-metabox.php 第144行,注册的meta\\u框为;

add_meta_box( \'wpseo_meta\', ...etc ); ...
连接到add_meta_boxes 钩住同一文件的第32行,

add_action( \'add_meta_boxes\', array( $this, \'add_meta_box\' ) );
当然,您可以从编辑后屏幕上的元框本身获取ID。。。无论如何

您可以执行以下操作:,

add_action(\'add_meta_boxes\', \'yoast_is_toast\', 99);
function yoast_is_toast(){
    //capability of \'manage_plugins\' equals admin, therefore if NOT administrator
    //hide the meta box from all other roles on the following \'post_type\' 
    //such as post, page, custom_post_type, etc
    if (!current_user_can(\'activate_plugins\')) {
        remove_meta_box(\'wpseo_meta\', \'post_type\', \'normal\');
    }
}
。。。其中,post type是您希望也应用此限制的post类型,例如post 或自定义帖子类型一个或多个!

应该做到这一点。

更新:manage_plugins 应该是activate_plugins - 安曼德

SO网友:Michael Ecklund

尝试将其粘贴到插件或主题中functions.php 文件,按照WordPress SEO plugin (API Docs), 通过Yoast.

if(function_exists(\'wpseo_use_page_analysis\') && !current_user_can(\'administrator\')){
    add_filter(\'wpseo_use_page_analysis\', \'__return_false\');
}
要避免任何错误。。。在尝试隐藏内容之前,这会检查以确保函数存在,从而允许您停用插件,而不会引发错误。

你可能需要init 为了使其正常工作,可以这样做:

function wpse_init(){
    if(function_exists(\'wpseo_use_page_analysis\') && !current_user_can(\'administrator\')){
        add_filter(\'wpseo_use_page_analysis\', \'__return_false\');
    }   
}
add_action(\'init\', \'wpse_init\');

SO网友:Kid Slimmer

您可以使用remove_meta_box 作用

if ( ! current_user_can( \'edit_pages\' ) ) {
    add_action( \'add_meta_boxes\', \'my_remove_wp_seo_meta_box\', 100000 );
}

function my_remove_wp_seo_meta_box() {
    remove_meta_box( \'wpseo_meta\', \'post\', \'normal\' );
}
注意add\\u操作中的100000,这确保了这是在连接了WP SEO元框之后完成的。

SO网友:noelmcg

您可以使用Adminimize插件根据用户的角色对其隐藏项目。我自己用这个来向客户隐藏一些Yoast SEO内容,并简化后端。

http://wordpress.org/extend/plugins/adminimize/

通过为要隐藏的项目添加css选择器,使用起来非常简单。已使用它隐藏SEO页面分析选项卡(#linkdex)

SO网友:user36226

Yoast在WordPress SEO上有一个设置选项,用于为非管理员禁用WordPress SEO设置的高级部分。如果要完全禁用该框,则可以使用其他插件删除非管理员的帖子编辑器页面元素,例如,从非管理员的帖子编辑器中删除WordPress SEO框。

结束

相关推荐

更改CCTM插件上的默认自定义字段Metabox名称

我找到了这条线Change Default Custom Fields Metabox Name我还想将这个由cctm插件生成的自定义字段头更改为其他内容,所以我尝试添加 global $wp_meta_boxes; add_filter(\'add_meta_boxes\', \'change_meta_box_titles\'); function change_meta_box_titles() { $wp_meta_boxes[\'my_post_type