如何更改Wordpress中的默认屏幕选项

时间:2014-06-28 21:33:15

标签: wordpress

我正在寻找一种方法来更改帖子编辑器中的默认屏幕选项。 我想默认隐藏某些选项。我正在组建一个家庭食谱网站,不希望用太多选项压倒用户。我不想以每个用户身份登录并手动更改其选项。我已经梳理了WP核心文件和主题文件,并且找不到很多对屏幕选项的引用。它是在数据库中的某个地方定义的吗?

提前致谢。

3 个答案:

答案 0 :(得分:5)

使用default_hidden_meta_boxes过滤器

add_filter( 'default_hidden_meta_boxes', 'my_hidden_meta_boxes', 10, 2 );
function my_hidden_meta_boxes( $hidden, $screen ) {
    return array( 'tagsdiv-post_tag', 'tagsdiv', 'postimagediv', 'formatdiv', 'pageparentdiv', ''); // get these from the css class
}

add_filter( 'hidden_meta_boxes', 'my_hidden_meta_boxes', 10, 2 );

奖励:要了解其工作原理,请查看核心功能get_hidden_meta_boxes()。这是一个简化版本:

function get_hidden_meta_boxes( $screen ) {
    $hidden = get_user_option( "metaboxhidden_{$screen->id}" );
    if ( $use_defaults ) {
        $hidden = apply_filters( 'default_hidden_meta_boxes', $hidden, $screen );
    }
    return apply_filters( 'hidden_meta_boxes', $hidden, $screen, $use_defaults );
}

答案 1 :(得分:2)

默认屏幕选项保存在wp_usermeta meta_keymetaboxhidden_post的{​​{1}}中。

我认为设置默认选项(或隐藏特定框)的最简单方法是使用像adminimize这样的插件。我个人使用advanced custom fields插件执行此任务(还有更多)。

答案 2 :(得分:1)

对Zendka的答案略有修改。我只是想从列表中删除一个项目,否则数组保持不变。

add_filter( 'default_hidden_meta_boxes', 'show_author_metabox', 10, 2 );
function show_author_metabox( $hidden, $screen )
{
    $authorkey = array_search( 'authordiv', $hidden );
    unset( $hidden[ $authorkey ] );

    return $hidden;
}

在我的情况下,我从隐藏列表中删除了'authordiv',将其与您想要从隐藏元框中删除的元数据交换出来。

在取消设置之前,我没有检查元数据是否存在,因为如果没有来自array_search的结果,它不会产生任何PHP通知/错误。