Hook chiamato prima del salvataggio di un widget di testo

22 gen 2017, 04:44:17
Visualizzazioni: 1.41K
Voti: 0

Voglio sapere quale hook/azione viene chiamato appena prima che il contenuto e il titolo di un Text Widget vengano salvati nel database. Ho cercato molto su Google ma non sono riuscito a trovare il nome dell'hook.

Quello che voglio è che ogni volta che viene premuto il pulsante di salvataggio di un widget di testo (nel pannello di amministrazione), voglio applicare la mia funzione personalizzata di personalizzazione del contenuto e restituire il contenuto aggiornato in modo che WordPress possa salvarlo.

Nota bene: La mia domanda non è un duplicato di questa domanda, perché riguarda un filtro e io sto cercando un hook o un'azione. Potrebbe essere una soluzione ma non è una buona soluzione nel mio caso, perché sarebbe dispendiosa in termini di tempo.
Ad esempio: Ho 10 widget di testo attivi nella mia sidebar e per ogni caricamento di pagina su ogni widget verrà chiamato widget_text. Quindi sto cercando una soluzione migliore.

Qualsiasi aiuto sarebbe molto apprezzato.
Grazie.

1
Commenti

grrr ti lamenti della risposta prima ancora che fosse data :((. In generale, se hai bisogno di un comportamento diverso, dovresti scrivere il tuo "widget di testo" personalizzato, poiché ci sono tutti i tipi di hook attivati quando un widget viene salvato, ma è improbabile che possano essere utilizzati facilmente.

Mark Kaplun Mark Kaplun
22 gen 2017 04:54:26
Tutte le risposte alla domanda 1
0

Non sei sicuro di cosa stai cercando qui, potrebbero esserci altre opzioni possibili, ma c'è ad esempio questo hook:

/**
 * Filtra le impostazioni di un widget prima del salvataggio.
 *
 * Restituire false interromperà effettivamente la capacità del widget
 * di aggiornare le impostazioni.
 *
 * @since 2.8.0
 *
 * @param array     $instance     Le impostazioni correnti dell'istanza del widget.
 * @param array     $new_instance Array delle nuove impostazioni del widget.
 * @param array     $old_instance Array delle vecchie impostazioni del widget.
 * @param WP_Widget $this         L'istanza corrente del widget.
 */
 $instance = apply_filters( 
    'widget_update_callback', 
    $instance, 
    $new_instance, 
    $old_instance, 
    $this 
);

Ecco un esempio di come possiamo selezionare i widget Testo e modificare il campo di input text quando vengono aggiornati:

add_filter( 'widget_update_callback', function( $instance, $new, $old, $obj )
{
    if( 'text' === $obj->id_base && ! empty( $instance['text'] ) )
    {
        // Attenzione questo sovrascrive l'input di testo dell'istanza del widget:
        // $instance['text'] = 'testo sovrascritto';
    }

    return $instance;
}, 10, 4 );
22 gen 2017 10:12:31