Я працюю над дочірньою темою, я настійно вважаю за краще не переосмислювати основні файли шаблонів, щоб зберегти простоту дочірньої теми, а також мінімізувати кількість коду та обслуговування з часом.
У циклі шаблон index.php у батьківській темі використовує:
get_template_part( 'content' );
який принесе content.php , я хочу, щоб він поводився більше get_template_part( 'content', get_post_format() );
або схоже, щоб вводити різні шаблони, такі як content-aside.php тощо, не створюючи index.php у дочірній темі, щоб перезаписати батьківський за одну зміну рядка.
get_template_part()
складається з:
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);
}
Отже, в моєму випадку є доступна дія get_template_part_content
Я можу підключитися до дії чимось на кшталт:
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);
}
}
Це, очевидно, призводить до дублювання публікацій, один з моєї функції підключення, який може відображати потрібний шаблон, а другий від звичайного locate_template
дзвінка вget_template_part()
У мене виникають проблеми з пошуком способу досягти цього без дублювання або без візуалізації кінцевої сторінки відразу після обслуговування моєї частини шаблону, роблячи щось дурне, наприклад, break
абоexit