Estoy trabajando en un tema infantil. Prefiero no reemplazar los archivos de la plantilla principal para mantener la simplicidad del tema infantil y minimizar la cantidad de código y mantenimiento a lo largo del tiempo.
En el bucle, la plantilla index.php en el tema principal utiliza:
get_template_part( 'content' );
que traerá content.php , estoy buscando que se comporte más como get_template_part( 'content', get_post_format() );
o similar para traer diferentes plantillas como content-aside.php , etc., sin crear un index.php en el tema secundario para sobrescribir al padre para un solo cambio de línea.
get_template_part()
consiste en:
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);
}
Así que hay una acción disponible, en mi caso llamada get_template_part_content
Puedo conectarme a la acción con algo como:
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);
}
}
Esto obviamente produce una duplicación de la publicación, una de mi función enganchada, que puede mostrar la plantilla deseada, y la otra de la llamada normal locate_template
en get_template_part()
Estoy teniendo problemas para encontrar una manera de lograr esto sin duplicación, o sin finalizar el procesamiento de la página justo después de servir la parte de mi plantilla haciendo algo estúpido, como break
o exit