Come posso aggiungere un evento jQuery OnClick al pulsante Pubblica articoli?

11 gen 2013, 20:45:54
Visualizzazioni: 4.36K
Voti: 4

Voglio aggiungere un semplice evento di conferma al pulsante Pubblica articoli, così quando il mio cliente clicca su "Pubblica" gli chiederà se è sicuro, a cui potrà rispondere "Sì" o "Annulla" e l'articolo verrà pubblicato o meno.

Sono nuovo in WordPress... o almeno ho fatto solo programmazione di temi e plugin limitati. Ho trovato il codice della metabox per il pulsante "Pubblica" in edit-form-advanced.php:

add_meta_box('submitdiv', __('Pubblica'), 'post_submit_meta_box', null, 'side', 'core');

Ma per ottenere questo risultato, sospetto che dovrò aggiungere il codice jQuery da un'altra parte - preferibilmente nel mio tema.

Per motivi specifici del sito, non posso aggiungere nuovi plugin a questa installazione quindi tutte le modifiche devono essere limitate al file functions.php del mio tema.

2
Commenti

Il numero di plugin che un sito utilizza è irrilevante, è ciò che ogni plugin fa che conta. La stessa soluzione aggiunta direttamente al tuo tema o tramite un plugin comporta un carico identico sul tuo sito.

Milo Milo
11 gen 2013 21:10:32

Sì. Beh, non sono qui per discutere i dettagli su quanti plugin facciano cosa, sono solo molto interessato a ottenere una risposta alla mia domanda in modo tale da evitare di dover usare un plugin per raggiungere il mio obiettivo. Va bene aggiungere codice al tema di questo sito... uno dei centinaia che ho nella mia installazione multisito.

Lynn Lynn
11 gen 2013 21:56:15
Tutte le risposte alla domanda 2
6

Puoi agganciarti alle azioni del footer del post (basato su questa risposta, non testato):

add_action( 'admin_footer-post-new.php', 'wpse_80215_script' );
add_action( 'admin_footer-post.php', 'wpse_80215_script' );

function wpse_80215_script()
{
    if ( 'post' !== $GLOBALS['post_type'] )
        return;

    ?>
<script>
document.getElementById("publish").onclick = function() {
    if ( confirm( "Pronto?" ) )
        return true;

        return false;

}</script>
    <?php
}

Queste azioni vengono chiamate in wp-admin/admin-footer.php:

do_action( "admin_footer-" . $GLOBALS['hook_suffix'] );

Questo codice può essere utilizzato in un plugin (preferibile) o nel file functions.php del tuo tema.
Vedi anche:

11 gen 2013 20:57:15
Commenti

Ok, ho aggiunto il codice sopra nel mio file functions.php e non è successo niente. È corretto assumere che lo script js vada nel file admin_footer? In questo caso ho prima provato il codice aggiungendo l'intero snippet sopra a functions.php...

Lynn Lynn
11 gen 2013 23:02:31

Sì, aggiungi semplicemente tutto nel functions.php. L'ho testato ora, funziona.

fuxia fuxia
11 gen 2013 23:06:48

inoltre...una cosa che mi confonde...non vedo alcun file in wp-admin chiamato admin_footer-post-new.php o admin_footer-post.php. C'è solo admin-footer.php che sembra un file piuttosto semplice. Potrebbe essere questo a far sì che i miei hook non funzionino?

Lynn Lynn
11 gen 2013 23:25:25

@Lynn Vedi il mio aggiornamento.

fuxia fuxia
11 gen 2013 23:29:33

Grazie. Ora ho capito. Stavo inserendo tutto nelle funzioni. Anche i link informativi.

Lynn Lynn
11 gen 2013 23:40:25

Funziona e, per divertimento, l'ho testato come plugin. Grazie per il tuo aiuto.

Lynn Lynn
12 gen 2013 00:19:44
Mostra i restanti 1 commenti
1

C'è un plugin WordPress per quello:

Confirm Publishing Actions è un plugin WordPress che richiede all'utente di cliccare un pulsante di conferma (o annullamento) ogni volta che sta cercando di inviare, pubblicare, aggiornare o eliminare un articolo WordPress.

11 gen 2013 20:49:57
Commenti

Sfortunatamente, mi trovo nella posizione in cui non mi è permesso aggiungere un plugin all'installazione multisito. Sta soffrendo molto per l'eccesso di plugin e semplicemente non è un'opzione.

Lynn Lynn
11 gen 2013 20:55:29