Question

How to customize the notice message ('Post published' or 'Post updated') displayed when I add or edit a custom post type registered with register_post_type() function?

Was it helpful?

Solution

You can used the post_updated_messages filter.

add_filter( 'post_updated_messages', 'rw_post_updated_messages' );


function rw_post_updated_messages( $messages ) {

$post             = get_post();
$post_type        = get_post_type( $post );
$post_type_object = get_post_type_object( $post_type );

$messages['my-post-type'] = array(
    0  => '', // Unused. Messages start at index 1.
    1  => __( 'My Post Type updated.' ),
    2  => __( 'Custom field updated.' ),
    3  => __( 'Custom field deleted.'),
    4  => __( 'My Post Type updated.' ),
    /* translators: %s: date and time of the revision */
    5  => isset( $_GET['revision'] ) ? sprintf( __( 'My Post Type restored to revision from %s' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
    6  => __( 'My Post Type published.' ),
    7  => __( 'My Post Type saved.' ),
    8  => __( 'My Post Type submitted.' ),
    9  => sprintf(
        __( 'My Post Type scheduled for: <strong>%1$s</strong>.' ),
        // translators: Publish box date format, see http://php.net/date
        date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) )
    ),
    10 => __( 'My Post Type draft updated.' )
);

    //you can also access items this way
    // $messages['post'][1] = "I just totally changed the Updated messages for standards posts";

    //return the new messaging 
return $messages;
}

OTHER TIPS

Since Wordpress 5.0 you can now define these messages directly in the register_post_type function :

function wporg_custom_post_type() {
    register_post_type('wporg_product',
        array(
            'labels'      => array(
                'name'          => __('Products', 'textdomain'),
                'singular_name' => __('Product', 'textdomain'),
                'item_published'           => __( 'Product published.', 'textdomain' ), // new since WP 5.0
                'item_published_privately' => __( 'Product published privately.', 'textdomain' ), // new since WP 5.0
                'item_reverted_to_draft'   => __( 'Product reverted to draft.', 'textdomain' ), // new since WP 5.0
                'item_scheduled'           => __( 'Product scheduled.', 'textdomain' ), // new since WP 5.0
                'item_updated'             => __( 'Product updated.', 'textdomain' ), // new since WP 5.0
            ),
            'public'      => true,
            'has_archive' => true,
        )
    );
}
add_action('init', 'wporg_custom_post_type');

Source : https://make.wordpress.org/core/2018/12/05/new-post-type-labels-in-5-0/

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top