Sovrascrivere in WordPress filtri del tema parent nel tema child

Spesso capita di avere la necessità di sovrascrivere dei filtri del tema parent di wordpress.
Ci sono vari moddi per farlo, quello che consiglio è di mantenere una logica di standard per poter cosi facilmente recuperare le funzioni sovrascritte.
Per poterlo fare seguiamo alcuni semplici passaggi.

1. Creare la pagina php nella root del tema child

Usiamo un nome che possa facilmente ricordarci cosa troveremo al suo interno; Vi assicuro che dopo mesi che non mettete mano ad un sito, avere una pagina che senza necessita di aprirla vi dice cosa c’è al suo interno è molto comodo.
Nel nostro caso la chiameremo overrides-parent-functions.php

2. Aggiungere una action

Nel nostro file functions.php aggiungiamo una action all’hook init che richiama la nostra pagina di overriders

 
  function remove_parent_filters(){ //Have to do it after theme setup, because child theme functions are loaded first
        require get_stylesheet_directory() . '/overrides-parent-functions.php';
  }
  add_action( 'init', 'remove_parent_filters' );

3. Creiamo le funzioni di override

All’interno del file php possiamo a questo punto inserire tutte le nostre funzioni di override che dovranno seguire una ben precisa logica.
a. rimuovere la funzione principale del tema con la funzione remove_filter
b. aggiungere un nuovo filtro con add_filter che richiami la nuova funzione
c. scrivere la nuova funzione

// Rimuovo il filtro esistente
remove_filter('[nome del filtro]', '[nome della funzione richiamata dal tema padre]');
// Definisco la nuova funzione da richiamare
function funzione_tema_figlio() {
      return '<i class="fa-heart-o"></i>';
}
// Applico il nuovo filtro per la nuova funzione
add_filter('[nome del filtro]', 'funzione_tema_figlio');

Lascia un commento

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