Cum să folosești un hook înainte de salvarea unui widget text în WordPress
Vreau să știu care hook/acțiune este apelată chiar înainte ca conținutul și titlul Widget-ului Text să fie stocate în baza de date. Am căutat pe Google dar nu am reușit să găsesc numele hook-ului.
Ceea ce doresc este ca de fiecare dată când este apăsat butonul de salvare al unui widget text (în panoul de administrare), să aplic funcția mea personalizată de modificare a conținutului și să returnez conținutul actualizat pentru ca WordPress să îl salveze.
Notă importantă: Întrebarea mea nu este un duplicat al acestei întrebări, deoarece acea soluție se referă la un filtru, iar eu caut un hook sau acțiune. Poate fi o soluție, dar nu este optimă în cazul meu, deoarece ar fi consumator de timp.
De exemplu: Am 10 widget-uri text active în bara laterală și pentru fiecare încărcare de pagină, fiecare widget va apela widget_text
. Așadar, caut o soluție mai bună.
Orice ajutor ar fi foarte apreciat.
Mulțumesc.

Nu sunteți sigur ce doriți aici, alte opțiuni ar putea fi posibile, dar există de exemplu acest hook:
/**
* Filtrează setările unui widget înainte de salvarea lor.
*
* Returnarea valorii false va scurta efectiv capacitatea widget-ului
* de a actualiza setările.
*
* @since 2.8.0
*
* @param array $instance Setările curente ale instanței widget-ului.
* @param array $new_instance Array cu noile setări ale widget-ului.
* @param array $old_instance Array cu vechile setări ale widget-ului.
* @param WP_Widget $this Instanța curentă a widget-ului.
*/
$instance = apply_filters(
'widget_update_callback',
$instance,
$new_instance,
$old_instance,
$this
);
Iată un exemplu despre cum putem ținti widget-urile de tip Text și modifica câmpul de intrare text
atunci când acestea sunt actualizate:
add_filter( 'widget_update_callback', function( $instance, $new, $old, $obj )
{
if( 'text' === $obj->id_base && ! empty( $instance['text'] ) )
{
// Avertisment: aceasta suprascrie textul introdus în instanța widget-ului:
// $instance['text'] = 'text suprascris';
}
return $instance;
}, 10, 4 );
