De onde o retorno de chamada dessa function obteve seus argumentos?

Isso pode ser mais adequado para o Stack Overflow, pensei que tentaria aqui primeiro.

Eu estava andando por este tutorial pelo Justin Tadlock e encontrei a function abaixo usada como argumento de retorno de chamada para a function add_meta_box . Minhas perguntas dizem respeito aos parâmetros …

 function smashing_post_class_meta_box( $object, $box ) { wp_nonce_field( basename( __FILE__ ), 'smashing_post_class_nonce' ); $output = '

'; $output .= ''; $output .= '
'; $output .= 'ID, 'smashing_post_class', true ) ) . '" size="30" />'; $output .= '

'; echo $output; }

Estou assumindo que $object é o $object global $post ? De onde é que vem, como é que passa para o retorno de chamada? Também parece que $box não foi usado, é algum tipo de parâmetro PHP in / out? Eu vi este tipo de coisas espalhadas por WordPress e meu conhecimento PHP é limitado ao WP, então não tenho certeza do que estou exatamente a ver. Eu fiz uma pesquisa rápida no PHP.net e em torno do Codex, qualquer informação seria apreciada.

Solutions Collecting From Web of "De onde o retorno de chamada dessa function obteve seus argumentos?"

Se você tiver uma olhada na function do_meta_boxes() no wp-admin / includes / template.php, você verá esta linha perto do final da function:

 call_user_func($box['callback'], $object, $box); 

Isso chama a function de retorno de chamada e fornece os dois argumentos. O argumento $box contém todas as informações sobre a metabox, como ID, título, function de retorno de chamada.

No wp-admin / edit-form-advanced.php, que exibe a canvas de edição / criação de postagem, você pode ver as chamadas do_meta_boxes em ação, por exemplo:

 do_meta_boxes(null, 'advanced', $post); 

Então, nesse caso, $object seria um object de postagem. Em outros casos, como a canvas do painel, o object $ realmente está configurado para uma string vazia.

Pode valer a pena notar que add_meta_box() apenas adiciona ao $wp_meta_boxes global. Em do_meta_boxes() que global, em seguida, é encaminhado e as checkboxs estão sendo exibidas.