Como o filtro post_updated_messages funciona?

Estou seguindo um tutorial sobre tipos de postagem personalizados e não consigo entender como funcionam algumas funções.

Permita-me explicar um pouco mais.

function my_updated_messages( $messages ) { global $post, $post_ID; $messages['product'] = array( 0 => '', 1 => sprintf( __('Product updated. View product'), esc_url( get_permalink($post_ID) ) ), 2 => __('Custom field updated.'), 3 => __('Custom field deleted.'), 4 => __('Product updated.'), 5 => isset($_GET['revision']) ? sprintf( __('Product restored to revision from https://wordpress.stackexchange.com//questions/108025/how-does-the-filter-post-updated-messages-work/%s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, 6 => sprintf( __('Product published. View product'), esc_url( get_permalink($post_ID) ) ), 7 => __('Product saved.'), 8 => sprintf( __('Product submitted. Preview product'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ), 9 => sprintf( __('Product scheduled for: %1$s. Preview product'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ), 10 => sprintf( __('Product draft updated. Preview product'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ), ); return $messages; } add_filter( 'post_updated_messages', 'my_updated_messages' ); 

Copiei parte do trecho de código do tutorial acima. Neste exemplo, eu sei que as mensagens de $ contém e matriz que tem determinados tipos de postagem. Para permitir mensagens personalizadas para um tipo de postagem personalizado, uma nova matriz é feita e depois retornada. A function my_updated_message () é filtrada (eu sei o que o add_filter faz).

Ok, as perguntas:

  1. Quando uma nova function tem um parâmetro, o parâmetro deve ser passado quando a function é chamada de direita? No caso acima, como a WP sabe que $ mensagens são de fato, $ mensagens de WP?
  2. Desculpe por estar totalmente não relacionado ao contexto acima, mas por que var_dump ($ post_updated_messages); Retornar nulo para mim. Quero ver o que está por dentro.

Uma explicação detalhada ou um link para qualquer tutorial seria muito apreciado.

Solutions Collecting From Web of "Como o filtro post_updated_messages funciona?"

Quando uma nova function tem um parâmetro, o parâmetro deve ser passado quando a function é chamada de direita? No caso acima, como a WP sabe que $ mensagens são de fato, $ mensagens de WP?

Se for um gancho do WordPress (você pode adicionar o seu próprio) executado em seu contexto normal (você pode executar filtros em qualquer lugar se quiser), o WordPress chama a function quando apply_filters('hook-name', ....) é executado. Os parâmetros são passados ​​nesse momento para que o WordPress tenha controle sobre ele. É possível executar o apply_filters por você mesmo, porque você sempre precisará fazer isso com mensagens que eu não conheço. A aplicação de filtros de the_content provavelmente é bastante comum, por exemplo, por exemplo:

 // data from some external source $data = get_my_external_content(); $data = apply_filters('the_content',$data); 

Agora você passou seus próprios dados através desse filtro. Mais uma vez, o parâmetro é passado quando apply_filters é executado.

Desculpe por estar totalmente não relacionado ao contexto acima, mas por que var_dump ($ post_updated_messages); Retornar nulo para mim. Quero ver o que está por dentro.

post_updated_messages é um nome de gancho, não uma variável que você pode despejar. Dentro de seu retorno de chamada var_dump($messages) lhe dará o que você tem que trabalhar.

Se você quiser ver os filtros e as devoluções de chamada, tente var_dump($GLOBALS['wp_filter']); . Essa é uma enorme variedade. Esteja avisado. Nem tudo vai aparecer, no entanto. Depende do contexto e de quais filtros foram e não foram adicionados.