Возможно, вы захотите тщательно изучить документацию Theme Development & Standards и документацию Child Themes . Тем не менее, существует огромное количество информации, которую нужно переварить, поэтому я понимаю, насколько это может быть пугающе.
Относительно того, «как WordPress находит и использует ваш альтернативный заголовок» - это просто нативная часть get_header()
функция. Если вы оставите его пустым или передадите ему недопустимое значение, он загрузит файл по умолчанию header.php
. Если вы передадите ей строку 'about'
, она попытается загрузить header-about.php
и возвратится к header.php
, если не сможет ее найти.
Также обратите внимание, что рассматриваемый заголовок отличается от wp_head()
основное использование для которого заключается в загрузке скриптов или данных в тег <head>
, который должен стоять перед вашим <header>
или <div id="header">
(menu / lo go, et c. ) введите output.
Если вы используете дочернюю тему, вместо клонирования page.php
из родительской темы будет использоваться версия дочерней темы, и вы можете безопасно вносить в нее изменения. То же самое с header.php
, header-about.php
или любыми другими файлами. Вам нужно только клонировать page.php
от родителя, если именно там вызывается get_header()
(это может варьироваться в зависимости от того, как была создана и структурирована родительская тема)
Любой CSS, используемый для форматирования альтернативы заголовок должен по-прежнему находиться внутри вашего style.css
(или style-about.css
аналогичного) файла и в правильном порядке с использованием функции wp_enqueue_style
на крюке wp_enqueue_scripts
.
Весь структурный код (PHP / HTML) для заголовка about
должен быть помещен в header-about.php
, который, вероятно, должен начинаться как копия header.php
, если есть какие-либо структурные функции или код, если есть что-то еще Остальная часть темы / макета сайта зависит от этого.
Вот несколько примеров того, как могут выглядеть ваши файлы:
child-theme / page. php
<?php
// Anything early-on in the parent theme's `page.php`
// Load `about` on page 23, otherwise default
// Ternary operatory for brevity
get_header( is_page(23) ? 'about' : null );
// Rest of `page.php`
?>
child-theme / functions. php
<?php
add_action( 'wp_enqueue_scripts', 'so60570540_enqueue_assets' );
function so60570540_enqueue_assets(){
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array(), '1.0' );
if( is_page( 23 ) ){
wp_enqueue_style( 'child-about', get_stylesheet_directory_uri() . '/style-about.css', array('child-style'), '1.0' );
}
}
?>