Gli Action Hook del Site Tree
Ogni volta che il Site Tree viene ricostruito, sono quattro i principali Action Hook ad essere eseguiti:
sitetree_will_build_site_tree
: eseguito prima che il Site Tree venga generato.sitetree_will_build_single_list
: eseguito prima che un'iper-lista del Site Tree venga generata.sitetree_did_build_single_list
: eseguito dopo che un'iper-lista del Site Tree è stata generata.sitetree_did_build_site_tree
: eseguito dopo che l'intero Site Tree è stato generato.
Aggiungere del Contenuto al Site Tree
Il codice che segue aggiunge un paragrafo in testa ad un'iper-lista di libri. Un Post Type 'Book' può essere aggiunto ad un sito WordPress utilizzando la funzionalità di Custom Post Type.
function insert_paragraph_before_book_list( $siteTreeBuilder ) {
if ( $siteTreeBuilder->listID() == 'book' )
$siteTreeBuilder->addContent( '<p>Un paragrafo riguardante i libri elencati.</p>' );
}
add_action( 'sitetree_will_build_single_list', 'insert_paragraph_before_book_list' );
Il parametro $siteTreeBuilder
è un reference all'oggetto di classe SiteTree\SiteTreeBuilder
a cui è assegnato il compito di produrre il Site Tree. La sua interfaccia di classe, dichiarata in includes/builders/builders-interfaces.php
, è la seguente:
interface SiteTreeBuilderInterface {
/**
* Restituisce l'identificativo unico della lista che è in corso di costruzione.
* Per i Custom Post Type, coincide con la Post Type Key.
*
* @since 2.0
* @return string
*/
public function listID();
/**
* Restituisce il tipo di contenuto in fase di elaborazione.
* Valori possibili: post, taxonomy, author.
*
* @since 6.0
* @return string
*/
public function getContentTypeFamily();
/**
* Restituisce 'true' o 'false' a seconda che il builder stia generando
* un'iper-lista a partire o meno da un gruppo di opzioni ricevute
* come attributi dello shortcode.
*
* @since 4.5
* @return bool
*/
public function isDoingShortcode();
/**
* Restituisce 'true' o 'false' a seconda che il builder stia generando
* un'iper-lista che sia il risultato o meno dell'esecuzione di uno shortcode
* oppure di un Template Tag.
*
* @since 5.2
* @return bool
*/
public function isDoingHyperlist();
/**
* @since 2.0
* @param string $string
*/
public function addContent( $string );
}