7

Basato sulle API Heartbeat di WordPress 3.6, Wp Heartbeat Notify, visualizza una notifica in tempo reale ai visitatori ogni volta che un nuovo post viene pubblicato con un link che reindirizza ad esso. Il plugin è ancora in versione beta ed è stato testato solo in WordPress 3.6-beta3.

screenshot-1

Installazione

Per installare il plugin è sufficiente andare a questa pagina, scaricare il pacchetto e caricare la cartella wp-heartbeat-notify nella cartella wp-content/plugin/ della vostra installazione. Ora andate su Plugin->Plugin installati e attivate il plugin. Fatto! Ora scrivete un nuovo articolo per vederlo in azione (Chiaramente la notifica non viene visualizzata dall’utente che ha scritto l’articolo per cui, al fine del test, aprite un altro browser in cui non siate loggati).

Scopo

Questo è probabilmente uno dei primi plugin di WordPress che faccia uso delle API di Heartbeat. Il suo scopo è principalmente didattico e spero che la soluzione che ho implementato possa essere utile a sviluppare nuove idee.

Ad ogni modo il plugin funziona correttamente e per aggiungere nuove notifiche è sufficiente aggiungere poche linee di codice come descritto di seguito.

Come funziona il plugin

Il funzionamento del plugin è piuttosto semplice:

  • Tutti gli script e gli stili necessari al funzionamento vengono accodati
  • Per generare una notifica si aggancia un action o un filter di WordPress e si crea un transient della turata del tick di Heartbeat
  • wp-heartbeat-notify, ogni pochi secondi, controlla la presenza del transient e fa l’output del contenuto

Aggiungere una nuova notifica

Per creare una nuova notifica, come spiegato in precedenza, dovete semplicemente agganciarvi ad una azione o un filtro ed eseguire la funzione Wp_Heartbeat_Notify::notify( $args ) come nell’esempio che segue:

Aggiungere una notifica ai nuovi commenti degli utenti registrati

// Let's hook into Comment publication
add_filter ( 'comment_post', 'notify_new_comment' );
function notify_new_comment( $comment_id ) {

  // Retrieve the comment
  $comment = get_comment( $comment_id );

  // Check if the user is registered
  if ( ! $comment->user_id > 0 )
        return;

  // Get the comment link
  $comment_link = get_comment_link( $comment_id ); 

  // Here's the magic
    Wp_Heartbeat_Notify::notify( array(
        'title'     =>      'New Comment by ' . $comment->comment_author,
        'content'   =>      'There\'s a new comment, why don\'t you <a href="' . $comment_link . '">give it</a> a look?',
        'type'      =>      'info'
    ) );

}
  1. Salve , ho trovato questo articolo grazie la mia domanda e una delle risposte su:
    http://wordpress.stackexchange.com/questions/108187/refresh-loop-of-custom-posts-div-after-new-post-is-published?noredirect=1#comment150528_108187

    Ho provato ad attivare il plugin ma nonostante che sto usando ultimo WordPress 3.6-RC2. nn ci riesco ad attivarlo, mi dice: This plugin requires WordPress 3.6 or greater. Che cosa sto facendo male?
    Comunque lei forse sa a rispondermi se questa Heartbeat API puo in futuro ad aiutarmi update loop dei articoli oppure refresh appena uno crea un articolo, come ho chiesto nella domanda.

    1. Hi Daniel,

      I guess you’d rather speak in english. I’ve actually no clue why the version check is givin you that error, so i would just comment out row 79 of class-my-plugin.php to avoid the check:

      register_activation_hook( $this->file, array( $this, 'plugin_activation' ) );

      About your other question… yes, i think you should follow this direction to dinamically add new submitted post to the loop.

  2. Sono riuscito ad attivarlo cambiando questa 3.6 a 3.5 qui: ‘wordpress’ => ‘3.5’ // WordPress 3.6 is required .
    Nn ho provato ancora con posts ma con custom post types che sono ora per me piu importanti, dove posso aggiungere post_type= ‘any’ ?

    1. Se il tuo post_type si chiama employer alla linea 34 di wp-heartbeat-notify.php sostituisci publish_post con publish_employer. Dovrebbe andare!

  3. ahh nn ho notato la tua risposta, scrivo cosi male in italiano :)? Vivo a Cagliari ma sono straniero, menomale che parlo italiano, solo grazie saper parlare italiano ho trovato il tuo sito, per me e ugualle se scrivo in Italiano o Inglese ma i termini piu specifici scrivo meglio in inglese e vero, Alessandro is it possible to make it work with custom post types too?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *