como limitar edit_form_after_title hook to page e post edit only?

heelo, eu quero usar este grande gancho edit_form_after_title

foi anunciado em 1 de dezembro de 2012:
http://make.wordpress.org/core/2012/12/01/more-hooks-on-the-edit-screen/

é um gancho de confiança para: post-novo, postagem, página nova, página.

Como faço para que funcione apenas em editar página / publicação ( somente postagem, página )

obrigado a todos

Solutions Collecting From Web of "como limitar edit_form_after_title hook to page e post edit only?"

Pessoalmente, eu usaria uma abordagem diferente, porque a solução do @Shazzad parece depender demais do mundo, e @s_ha_dum precisa de 2 ganchos em vez de um.

Eu get_current_screen function get_current_screen para obter um object WP_Screen , então eu olharia sua propriedade para executar (ou não) algo após o título:

 function do_something_after_title() { $scr = get_current_screen(); if ( ( $scr->base !== 'post' && $scr->base !== 'page' ) || $scr->action === 'add' ) return; echo '

After title only for post or page edit screen

'; } add_action( 'edit_form_after_title', 'do_something_after_title' );

Não sei se houve alguma mudança durante o tempo que passou da pergunta original, mas a partir de 4.0 você obtém a postagem como um parâmetro para o gancho e tudo o que é necessário fazer é verificar o tipo de publicação. Se você se pergunta o que acontece ao criar uma nova postagem, a resposta é que o WordPress gera uma publicação falsa se o tipo de publicação for definido como o tipo correto.

 function do_something_after_title( $post ) { if( 'post' !== $post->post_type && 'page' !== $post->post_type ) { return; } echo '

After title only for post or page edit screen

'; } add_action( 'edit_form_after_title', 'do_something_after_title' );

Verifique o tipo de publicação usando $typenow e $pagenow variables ​​globais.

 add_action( 'edit_form_after_title', 'myprefix_edit_form_after_title' ); function myprefix_edit_form_after_title() { global $typenow, $pagenow; if( in_array($typenow, array('post', 'page') ) && $pagenow == 'post.php' ) { echo '

This is edit_form_after_title!

'; } }