web-dev-qa-db-fra.com

Avis sur le front-end

Je republie. Comme mes dernières questions n'étaient pas célèbres.

Mes utilisateurs soumettent des types de publication personnalisés (projets) à partir du client. Comment puis-je afficher des notifications (telles que celle affichée sur le tableau d'administration) au début pour le moment où l'utilisateur exécute une action, par exemple modifier une publication.

Je sais qu'il existe des points d'ancrage pour update/submit (post_updated_messages ...), mais ceux-ci ne montrent rien sur le front-end.

J'ai essayé de mettre ce qui suit mais ça ne marche pas:

add_filter('post_updated','alert_user');

function alert_user()
{
add_action('display_message','prepare_text');
}

function prepare_text(){
return 'You did it!';
}

dans mon thème j'ai

do_action('display_message');

Cela ne fonctionne pas car prepare_text n'est jamais connecté à display_message!

De l'aide?

Merci

1
semyou

Vous pouvez filtrer the_content:

add_action( 'post_updated', 'wpse105892_add_message', 10 );
function wpse105892_add_message() {
    add_filter( 'the_content', 'wpse105892_display_message' );
}

function wpse105892_display_message( $content ) {
    // remove the action once it's run
    remove_action( 'post_updated', 'wpse105892_add_message', 11 );

    $content = "<div class='your-message'>You did it!</div>\n\n" . $content;
    return $content;
}
3
Pat J