web-dev-qa-db-fra.com

Ajouter une notification personnalisée après la suppression de la publication

J'essaie d'ajouter une notification d'informations personnalisée après que le message a été supprimé de la corbeille, mais je n'ai aucune chance avec cela

add_action( 'delete_post', 'show_admin_notice' );
/**
 * Show admin notice after post delete
 *
 * @since 1.0.0.
 */
function show_admin_notice(){
    add_action( 'admin_notices', 'show_post_order_info' );
}

/**
 * Display notice when user deletes the post
 *
 * When user deletes the post, show the notice for the user
 * to go and refresh the post order.
 *
 * @since 1.0.0
 */
function show_post_order_info() {
    $screen = get_current_screen();

    if ( $screen->id === 'edit-post' ) {
        ?>
        <div class="notice notice-info is-dismissible">
            <p><?php echo esc_html__( 'Please update the ', 'nwl' ) . '<a href="' . esc_url( admin_url( 'edit.php?page=post-order' ) ). '">' . esc_html__( 'post order settings', 'nwl' ) . '</a>' . esc_html__( ' so that the posts would be correctly ordered on the front pages.', 'nwl' ); ?></p>
        </div>
        <?php
    }
}

Il me manque clairement quelque chose ici, mais je ne pouvais pas trouver quoi sur google.

Si je n'utilise que le hook admin_notices, la notification sera toujours affichée sur la page d'administration de mes publications

3
dingo_d

Vérification des comptes en vrac

Nous pouvons vérifier le nombre total, pour voir si un message était supprimé :

add_filter( 'bulk_post_updated_messages', function( $bulk_messages, $bulk_counts )
{
    // Check the bulk counts for 'deleted' and add notice if it's gt 0
    if( isset( $bulk_counts['deleted'] ) && $bulk_counts['deleted'] > 0 )
        add_filter( 'admin_notices', 'wpse_243594_notice' );

    return $bulk_messages;
}, 10, 2 );

où nous définissons le rappel avec notre avis personnalisé comme suit:

function wpse_243594_notice()
{
    printf( 
        '<div class="notice notice-info is-dismissible">%s</div>',
        esc_html__( 'Hello World!', 'domain' )
    );
}

Le compte en vrac contient des informations supplémentaires pour updated , locked , mis au rebut et untrashed .

Exemple de sortie

 custom notice on post delete 

J'espère que vous pourrez adapter cela à vos besoins!

3
birgire

Je pense que cela va résoudre:

if(isset($_GET['post_status']) && $_GET['post_status']=='trash'){
     add_action( 'admin_notices', 'show_post_order_info' );
}
0
T.Todua