首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress元框值显示到自定义字段

Wordpress元框值显示到自定义字段
EN

Stack Overflow用户
提问于 2012-02-24 21:13:18
回答 2查看 1.9K关注 0票数 2

我已经使用"add_meta_boxes“操作在我的帖子中添加了meta框,以添加/更改自定义设置,如背景颜色等。

当我在我的屏幕选项中启用自定义字段时,我的meta框的所有值都会显示在这些自定义字段中!

还可以在选择框中添加一个新的“自定义字段”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-24 21:57:28

如果你想从自定义字段metabox中隐藏你的post元数据,你应该以下划线开始你的元键。示例_background-color

添加:

你也可以使用返回布尔值(true - hide, false - show)的is_protected_meta过滤器。

过滤参数:$protected, $meta_key。请参见wp-includes/meta.php文件。函数is_protected_meta()

票数 2
EN

Stack Overflow用户

发布于 2014-11-28 10:42:31

通常,WP会在自定义字段(默认/核心) MetaBox中隐藏以下划线/_开头的元键。

现在想象一下,你不想让插件的用户通过丑陋的、用户不友好的Custom Fields元框来修改Post Meta Data。因此,您构建了一个自定义元框,并在您的元键前面添加了一个下划线/_。然后用户改变主意,停用或卸载你的插件。现在发生的情况是,用户完全不能访问任何UI来更改(仍然存在的)元数据。对于用户来说,这是一个非常非常糟糕的情况。

因此,我们需要一个开关来关闭自定义字段MetaBox访问,只要您的插件是激活的。因此,WP核心得到了is_protected_meta()函数。它基本上由两行代码组成:

代码语言:javascript
复制
$protected = ( '_' == $meta_key[0] );
return apply_filters( 'is_protected_meta', $protected, $meta_key, $meta_type );

由于只提供一个过滤器来处理这一点并不好,现在WordPress有一个简单的函数可以使用:

代码语言:javascript
复制
register_meta( $meta_type, $key, $sanitize_callback, $auth_callback );

最后一个参数,$auth_callback在此函数中执行以下操作:

代码语言:javascript
复制
if ( empty( $auth_callback ) ) {
    if ( is_protected_meta( $meta_key, $meta_type ) )
        $auth_callback = '__return_false';
    else
        $auth_callback = '__return_true';
}

if ( is_callable( $auth_callback ) )
    add_filter( "auth_{$meta_type}_meta_{$meta_key}", $auth_callback, 10, 6 );

正如您所看到的,只要您的插件处于活动状态,您就只想将'__return_false'作为$auth_callback添加到deactivate Custom Fields MetaBox access中。当用户删除或停用您的插件时,他可以通过标准的自定义字段MetaBox立即访问元字段。

注意:在写这个问题时,WP核心版本是v4.0.1。利用$sanitize_callback!感谢Trepmal在她的博客上发表了关于is_protected_meta过滤器的帖子。否则我永远不会偶然发现它的用例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9431367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档