Pracuję nad motywem potomnym. Zdecydowanie wolę nie zastępować głównych plików szablonów, aby zachować prostotę motywu potomnego, a także zminimalizować ilość kodu i konserwacji w czasie.
W pętli szablon index.php w kompozycji nadrzędnej używa:
get_template_part( 'content' );
który przyniesie content.php , chcę, aby zachowywał się podobnie get_template_part( 'content', get_post_format() );
lub podobnie w celu wprowadzenia różnych szablonów, takich jak content-aside.php itp., bez tworzenia index.php w motywie potomnym w celu zastąpienia rodzic dla zmiany w jednej linii.
get_template_part()
składa się z:
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);
}
Więc dostępna jest akcja, w moim przypadku o nazwie get_template_part_content
Mogę dołączyć do akcji za pomocą:
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);
}
}
Powoduje to oczywiście duplikację po, jedną z mojej funkcji przechwyconej, która może wyświetlić żądany szablon, a drugą ze zwykłego locate_template
wywołania wget_template_part()
Mam problem ze znalezieniem sposobu na osiągnięcie tego bez powielania lub bez renderowania strony końcowej zaraz po udostępnieniu części szablonu przez zrobienie czegoś głupiego, takiego jak a break
lubexit