heelo, je veux utiliser ce super crochet edit_form_after_title
il a été annoncé le 1er décembre 2012:
http://make.wordpress.org/core/2012/12/01/more-hooks-on-the-edit-screen/
c'est un crochet courant pour: post-new, post, page-new, page.
comment puis-je le faire fonctionner uniquement dans edit page/post ( uniquement post, page )
merci a tous
Personnellement, j'utiliserais une approche différente, car la solution de @Shazzad semble trop dépendante de la globalité, et @s_ha_dum nécessite deux crochets au lieu d'un.
J'utiliserais get_current_screen
function pour obtenir un objet WP_Screen
, puis je regarderais sa propriété pour exécuter (ou non) quelque chose après le titre:
function do_something_after_title() {
$scr = get_current_screen();
if ( ( $scr->base !== 'post' && $scr->base !== 'page' ) || $scr->action === 'add' )
return;
echo '<h2>After title only for post or page edit screen</h2>';
}
add_action( 'edit_form_after_title', 'do_something_after_title' );
Je ne sais pas s'il y a eu un changement pendant le temps écoulé depuis la question initiale, mais à partir de la version 4.0, la publication est considérée comme un paramètre pour le raccordement et tout ce qu'il faut faire est de vérifier le type de publication. Si vous vous demandez ce qui se passe lors de la création d'un nouveau message, la réponse est que WordPress génère un message factice si le type de message est défini sur le type correct.
function do_something_after_title( $post ) {
if( 'post' !== $post->post_type && 'page' !== $post->post_type ) {
return;
}
echo '<h2>After title only for post or page edit screen</h2>';
}
add_action( 'edit_form_after_title', 'do_something_after_title' );
Vérifiez le type de publication à l'aide des variables globales $typenow
et $pagenow
.
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 '<h2>This is edit_form_after_title!</h2>';
}
}