你在正确的轨道上。我在save_post
回调,然后使用admin notices 当字段验证失败时,向用户显示错误。它们显示在页面顶部的突出显示框中,就像WordPress本身生成的任何错误/消息一样。
下面是创建管理通知的简单示例:
function my_admin_notice()
{
?>
<div class="updated">
<p>Aenean eros ante, porta commodo lacinia.</p>
</div>
<?php
}
add_action( \'admin_notices\', \'my_admin_notice\' );
不过,这并不太实际。在这种情况下,您实际上只需要一个可以传递消息的函数。比如,
if( $pizza != \'warm\' )
$notices->enqueue( \'Pizza is not warm\', \'error\' );
所以,你可以这样写
enqueue()
您可以自己使用函数(以及打印通知的函数),也可以包括一个库,如
IDAdminNotices.
以下是a plugin I wrote. 这使用内置于类本身的通知排队/打印函数,而不包括外部库。
public function saveCustomFields( $postID )
{
// ...
if( filter_var( $_POST[ self::PREFIX . \'zIndex\'], FILTER_VALIDATE_INT ) === FALSE )
{
update_post_meta( $post->ID, self::PREFIX . \'zIndex\', 0 );
$this->enqueueMessage( \'The stacking order has to be an integer.\', \'error\' );
}
else
update_post_meta( $post->ID, self::PREFIX . \'zIndex\', $_POST[ self::PREFIX . \'zIndex\'] );
// ...
}
add_action( \'save_post\', array( $this, \'saveCustomFields\' );