如何有条件地使用‘EDIT_FORM_AFTER_TITLE’?

时间:2016-11-30 作者:glvr

我用它向帖子/页面/CPT添加消息,但它也出现在插件的一个屏幕上,所以我需要删除它。

我有screenID,但由于我的知识不足,无法在下面的代码中的大括号和echo之间添加条件,因此产生了各种错误。

add_action( \'edit_form_after_title\', function( $post ) {
echo "<div class=\\"add-message\\">
<p>Message.</p>
</div><!-- /add-message -->";
});

1 个回复
最合适的回答,由SO网友:WebElaine 整理而成

似乎有必要将您的消息专门限制在您希望消息显示的屏幕上,而不是让它显示在除了插件页面之外的任何地方。“post”和“page”的屏幕ID是不言自明的;只需使用双管道添加更多的“or”子句,并包括您希望消息显示在其中的任何自定义帖子类型。

add_action( \'edit_form_after_title\', function( $post ) {
$screen = get_current_screen();
if($screen->id == \'post\' || $screen->id == \'page\' || $screen->id == \'your_cpt_slug\') {
echo "<div class=\\"add-message\\">
<p>Message.</p>
</div><!-- /add-message -->";
}
});
如果您确实希望它出现在除特定插件屏幕ID之外的所有管理中,请将该屏幕ID替换为下面的“screen\\u to\\u hide\\u on”:

add_action( \'edit_form_after_title\', function( $post ) {
$screen = get_current_screen();
if($screen->id != \'screen_to_hide_on\') {
echo "<div class=\\"add-message\\">
<p>Message.</p>
</div><!-- /add-message -->";
}
});

相关推荐