heelo, ich möchte diesen tollen hook benutzen edit_form_after_title
es wurde am 1. Dezember 2012 bekannt gegeben:
http://make.wordpress.org/core/2012/12/01/more-hooks-on-the-edit-screen/
Es ist ein Haken für: post-new, post, page-new, page.
wie kann ich es schaffen, nur in Seite/Beitrag zu arbeiten ( nur Beitrag, Seite )
danke an alle
Persönlich würde ich einen anderen Ansatz verwenden, da die Lösung von @Shazzad zu stark global abhängig zu sein scheint und @s_ha_dum 2 Hooks anstelle von einem benötigt.
Ich würde get_current_screen
function verwenden, um ein WP_Screen
Objekt zu erhalten, dann würde ich mir seine Eigenschaft ansehen, um etwas nach dem Titel auszuführen (oder nicht):
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' );
Ich weiß nicht, ob sich während der Zeit, die seit der ursprünglichen Frage vergangen ist, etwas geändert hat. Ab Version 4.0 erhalten Sie den Beitrag als Parameter für den Hook. Sie müssen lediglich den Beitragstyp überprüfen. Wenn Sie sich fragen, was passiert, wenn Sie einen neuen Beitrag erstellen, lautet die Antwort, dass WordPress einen Dummy-Beitrag generiert, wenn der Beitragstyp auf den richtigen Typ eingestellt ist.
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' );
Überprüfen Sie den Beitragstyp mithilfe der globalen Variablen $typenow
und $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>';
}
}