Sto lavorando su un tema figlio, preferisco fortemente non sovrascrivere i file modello principali per mantenere la semplicità del tema figlio e ridurre al minimo la quantità di codice e manutenzione nel tempo.
Nel ciclo, il modello index.php nel tema principale utilizza:
get_template_part( 'content' );
che introdurrà content.php , sto cercando di comportarlo in modo più simile get_template_part( 'content', get_post_format() );
o simile al fine di introdurre diversi modelli come content-apart.php , ecc., senza creare un index.php nel tema figlio per sovrascrivere il genitore per un cambio di riga singola.
get_template_part()
consiste di:
function get_template_part( $slug, $name = null ) {
do_action( "get_template_part_{$slug}", $slug, $name );
$templates = array();
$name = (string) $name;
if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
Quindi c'è un'azione disponibile, nel mio caso chiamata get_template_part_content
Posso agganciarmi all'azione con qualcosa del tipo:
add_action( 'get_template_part_content', 'child_post_styles', 10, 2 );
function child_post_styles ( $slug, $name ) {
if( false == $name ){
$name = get_post_format();
$templates = array();
if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
}
Ciò ovviamente comporta la duplicazione post, uno dalla mia funzione hook, che può visualizzare il modello desiderato e l'altro dalla normale locate_template
chiamata inget_template_part()
Sto riscontrando problemi nel trovare un modo per ottenere questo risultato senza duplicazione o senza terminare il rendering della pagina subito dopo aver pubblicato la mia parte del modello facendo qualcosa di stupido come un break
oexit