WordPress的meta框的值显示自定义字段

我已经用行动“加元框来我的帖子add_meta_boxes ”添加/像背景颜色等改变自定义设置

当我能够在我的屏幕选项自定义字段,我的箱子元所有值都在这些自定义字段displayd!

也有显示出来的选择框添加一个新的“自定义字段”。

--------------解决方案-------------

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

添加:

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

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

通常情况下隐藏可湿性粉剂以下划线/启动Meta键_自定义字段 (默认/核心)MetaBox。

现在想象一下,你不想让你的插件可能通过丑陋和用户不友好的自定义字段元框来改变邮政元数据的用户。 因此,你建立一个自定义元框,您的前缀用下划线/ meta键_ 。 然后,用户改变了主意,并停用或卸载你的插件。 现在会发生什么是用户有任何确切的用户界面进不去改变(仍然存在)的元数据。 这是用户非常,非常糟糕的情况。

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

$protected = ( '_' == $meta_key[0] );
return apply_filters( 'is_protected_meta', $protected, $meta_key, $meta_type );

因为它不是很好,只提供了一个过滤器来处理,今天的WordPress有一个简单的功能,您可以使用:

register_meta( $meta_type, $key, $sanitize_callback, $auth_callback );

而最后的参数, $auth_callback执行此函数内部的情况如下:

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只要你的插件被激活停用自定义字段MetaBox访问 。 当用户删除或关闭你的插件,他瞬间拥有通过标准的自定义字段MetaBox访问元场。



注:在V4.0.1 WP核心在写这个问题。 客人可以使用的$sanitize_callback ! 感谢Trepmal张贴有关is_protected_meta在她的博客过滤器。 否则我会于用例从未跌跌撞撞。

分类:php 时间:2015-03-14 人气:2
本文关键词: PHP,WordPress的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.467 (s). 10 q(s)