这个函数的回调从哪里获取其参数?

时间:2012-04-15 作者:Confused

这可能更适合堆栈溢出,但我还是先在这里试试。

我正在穿过this tutorial by Justin Tadlock 并遇到以下函数用作add_meta_box 作用我的问题涉及参数。。。

function smashing_post_class_meta_box( $object, $box ) {

wp_nonce_field( basename( __FILE__ ), \'smashing_post_class_nonce\' );

$output = \'<p>\';
$output .= \'<label for="smashing-post-class">Add a custom CSS class, which will be applied to WordPress\\\' post class.</label>\';
$output .= \'<br />\';
$output .= \'<input class="widefat" type="text" name="smashing-post-class" id="smashing-post-class" value="\' . esc_attr( get_post_meta( $object->ID, \'smashing_post_class\', true ) ) . \'" size="30" />\';
$output .= \'</p>\';

echo $output;
}
我想$object 是全球的$post 对象它来自哪里,如何传递到回调中?看起来好像$box 未使用,这是某种PHP输入/输出参数吗?我在WordPress中看到过这种东西,我的PHP知识仅限于WP,所以我不确定我到底看到了什么。我在PHP上做了一个快速搜索。net和Codex,任何信息都将不胜感激。

1 个回复
SO网友:shabushabu

如果你看一下函数do_meta_boxes() 在wp admin/includes/template中。php然后您将在函数末尾看到这一行:

call_user_func($box[\'callback\'], $object, $box);
它调用回调函数并提供两个参数。这个$box 参数保存有关元框的所有信息,如ID、标题、回调函数。

在wp管理/编辑表单高级中。php,它显示您的后期编辑/创建屏幕,您可以看到do\\u meta\\u Box调用正在运行,例如:

do_meta_boxes(null, \'advanced\', $post);
那么,在这种情况下$object确实是post对象。在其他情况下,如仪表板屏幕,$对象实际上设置为空字符串。

值得注意的是add_meta_box() 只是增加了$wp_meta_boxes 全球的在里面do_meta_boxes() 然后,该全局循环通过,并显示框。

结束

相关推荐

在PHP中定义特定类别名称

可能是个很简单的问题。。。我试图在PHP中提取一个类别名称,并将其显示在我的页面上。我在这个页面上有多个分类部分,每个部分都需要把他们受人尊敬的名字作为一个h2。以下是我目前正在做的事情:<div class=\"category-section\"> <h2><?php the_category(); ?></h2> <div class=\"content\"> <?php que