处理错误时删除已发布的帖子通知 [英] remove published post notice while error handled

查看:30
本文介绍了处理错误时删除已发布的帖子通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为自定义帖子类型创建错误处理程序.

im creating an error handler for a custom post type.

add_filter( 'wp_insert_post_data' , 'filter_post_data' , '99', 2 );
function filter_post_data( $data , $postarr )
{
    //error handling
    if($data['post_type'] == 'post_annunci')
    {
        if($postarr['annuncio_prezzo'] == '' || !is_numeric($postarr['annuncio_prezzo']))
        {
            $errors .= 'Annuncio non salvato, devi inserire un prezzo con valori numerici.</br>prezzo = '.$postarr['annuncio_prezzo'];
            update_option('my_admin_errors', $errors);

            $data['post_status'] = 'draft';
        }
    }
    return $data;

}

add_action( 'admin_notices', 'admin_error_handler_annunci' );
function admin_error_handler_annunci() {

    $errors = get_option('my_admin_errors');

    if($errors) 
        echo '<div class="error"><p>' . $errors . '</p></div>';
}
// Clear any errors
add_action( 'admin_footer', 'clear_error_handler_annunci' );
function clear_error_handler_annunci() {

    update_option('my_admin_errors', false);
}

这很好用,但我收到了一个已发布的帖子"通知,我想删除.

This works perfectly but i get a "published post" notice that i want to remove.

有什么办法可以摆脱那个消息吗?我看到过类似此脚本的某种通知删除程序,但仅适用于更新通知.

Is there some way to get rid of that message? I seen some sort of notice remover like this script, but works only for update notices.

function hideUpdateNag() {
    remove_action( 'admin_notices', 'update_nag', 3 );
}
add_action('admin_menu','hideUpdateNag');

推荐答案

是的.可以使用过滤器 post_updated_messages.

Yes. It is possible with the filter post_updated_messages.

add_filter( 'post_updated_messages', 'remove_all_messages_so_16015959' );

function remove_all_messages_so_16015959( $messages )
{
    return array();
}

在这个例子中,返回一个空数组.结果根本没有消息.
这可以使用下面的示例值进行微调,这些值是过滤器之前 $messages 的内容.

In this example, an empty array is returned. Resulting in no messages at all.
This can be fine tuned using the sample values bellow, which are the contents of $messages before the filter.

Array
(
    [post] => Array
        (
            [0] => 
            [1] => Post updated. View post
            [2] => Custom field updated.
            [3] => Custom field deleted.
            [4] => Post updated.
            [5] => 
            [6] => Post published. View post
            [7] => Post saved.
            [8] => Post submitted. Preview post
            [9] => Post scheduled for: Jan 12, 2013 @ 19:03. Preview post
            [10] => Post draft updated. Preview post
        )

    [page] => Array
        (
            [0] => 
            [1] => Page updated. View page
            [2] => Custom field updated.
            [3] => Custom field deleted.
            [4] => Page updated.
            [5] => 
            [6] => Page published. View page
            [7] => Page saved.
            [8] => Page submitted. Preview page
            [9] => Page scheduled for: Jan 12, 2013 @ 19:03. Preview page
            [10] => Page draft updated. Preview page
        )

    [attachment] => Array
        (
            [1] => Media attachment updated.
            [2] => Media attachment updated.
            [3] => Media attachment updated.
            [4] => Media attachment updated.
            [5] => Media attachment updated.
            [6] => Media attachment updated.
            [7] => Media attachment updated.
            [8] => Media attachment updated.
            [9] => Media attachment updated.
            [10] => Media attachment updated.
        )

)

这篇关于处理错误时删除已发布的帖子通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆