为所有用户和管理员设置管理编辑面板和metaboxes位置和可见性

时间:2012-04-12 作者:unfulvio

我的WP 3.3设置包括几个帖子类型和自定义编辑面板,其中包含高级自定义字段插件(可创建许多元盒)和其他插件,如SEO元盒面板、Scribu的Posts2Posts连接等。

问题是,这些面板的外观顺序通常是随机的(即使高级自定义字段提供某种排序,但它并不总是有效,因为其他插件没有它,而且我可能想根据帖子类型更改metabox的位置)。

现在,Wordpress允许每个拥有适当权限的管理员/用户按照自己想要的方式在编辑面板中排列元数据库。然而每个管理员都必须自己安排!!难道没有办法准备一个默认/固定的订单,或者让superadmin或一个管理员为每个人设置面板位置吗?

我至少有4名管理员和少数编辑/作者。。。这没有意义,我必须设置他们的小组,用他们的每个帐户登录。。。对于不懂wordpress的用户来说,这既愚蠢又耗时,而且令人困惑。

是否有任何插件或代码片段可以帮助我的案例?

非常感谢。

2 个回复
SO网友:Travis Pflanz

您可以使用remove\\u meta\\u box删除默认元框,然后使用add\\u meta\\u box将其重新添加到其他位置:

add_action(\'do_meta_boxes\', \'wpse33063_move_meta_box\');

function wpse33063_move_meta_box(){
    remove_meta_box( \'postimagediv\', \'post\', \'side\' );
    add_meta_box(\'postimagediv\', __(\'Featured Image\'), \'post_thumbnail_meta_box\', \'post\', \'normal\', \'high\');
}
以上答案来自以下线索:How to change default position of WP meta boxes?

更新

如果主要的问题仅仅是可用的元框数量,并且您认为每个用户都不需要所有的框,那么您可以使用添加到函数中的以下代码将它们隐藏在较低的用户角色或所有角色面前。php文件。注意-此方法仅隐藏元框,而不停用或删除它们。

//Hide Post Page Options from all except Administrator
if (!current_user_can(\'administrator\')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\\"text/css\\"> #wptotwitter_div, wpseo_meta, #al2fb_meta, #misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section, .al2fb_post_submit, #slugdiv, #edit-slug-box, #screen-options-link-wrap { display: none; }</style>";
print($hide_post_options);
}
add_action( \'admin_head\', \'hide_post_page_options\'  );
}

//Hide Post Page Options from ALL users
function hide_all_post_page_options() {
global $post;
$hide_all_post_options = "<style type=\\"text/css\\"> #taxonomy-category li.hide-if-no-js, #commentstatusdiv, #wypiekacz_sectionid, #postexcerpt, #trackbacksdiv, #postcustom, #yarpp_relatedposts { display: none !important; }</style>";
print($hide_all_post_options);
}
add_action( \'admin_head\', \'hide_all_post_page_options\'  );
基本上,只需输入div id或类,并用逗号分隔。我只是把我的放在那里,以表明各种元框和区域都可以隐藏。

#wptotwitter_div - WP to Twitter plugin
#wpseo_meta - Wordpress SEO by Yoastplugin
#al2fb_meta, .al2fb_post_submit - Add Link to Facebookplugin
#misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section - Default Wordpress Publish Status and Visibility
#slugdiv, #edit-slug-box - The post slug
#screen-options-link-wrap - The "Screen Options" tab at the top of the page
#taxonomy-category li.hide-if-no-js - The "Most Used" categories tab
#commentstatusdiv - The comments on the post
#wypiekacz_sectionid - Wypiekacz plugin
#postexcerpt - Post excerpt
#trackbacksdiv - Trackbacks
#postcustom - Custom post fields
#yarpp_relatedposts - Yet Another Related Posts Plugin
(我将示例放在“代码”中,因为SE使用#表示标题)

我想我会把这个扔给你,因为和你一样,我对所有的元框都感到非常失望,但最终我认为这是不需要的框的数量。对于“A”;“作者”;在我的网站上,它现在非常精简:标题、内容、另存为草稿、立即发布或发布时间表、标签、类别和特色图片。。。完全没有杂乱。

SO网友:JCL1178

你调查过Adminimize 插件?

它允许您按用户角色激活/停用元框,还可以配置位置。配置它需要一点时间,文档也很不错,虽然有些地方不稳定,但它应该能够处理您所描述的内容。

结束

相关推荐

如何在不破坏TinyMCE的情况下在metabox帖子页面上使用媒体上传?

我使用以下代码在帖子或页面管理部分的多个mextabox中上传。适用于元盒,但会打断TinyMCE插入图像。我想知道我怎样才能做到这一点,而又不致于打破僵局。当我覆盖窗口时,问题就出现了。send\\u to\\u editor函数。jQuery(document).ready(function() { jQuery(\'.st_upload_button\').click(function() { targetfield = jQuery(this).prev(