Files
wordpress-theme-aksrt/templates/parts/page-header.php
T
kate522 8849540fda 专用页对齐 content-shell,并删 page-header query-var 回退
archives/friends/newposts/posts-navs/categories 统一壳层与 page-header 契约,
主路径不再保留 aksrt_ph_* ambient 传参。
2026-07-09 23:05:06 +08:00

97 lines
2.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Reusable Page Header Template Part.
*
* Contract: get_template_part(..., null, $args)
*
* Args:
* style – '' | '1' | '2' | '3' | 'not'
* eyebrow – eyebrow label text
* title – title HTML (caller escapes)
* desc – description text
* cover – cover image URL override
* extra – extra HTML (caller escapes)
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
$args = is_array($args ?? null) ? $args : [];
// Resolve style: explicit args > global setting.
$ph_style = array_key_exists('style', $args) ? $args['style'] : null;
if ($ph_style === null) {
$ph_style = class_exists('AKSRT_Settings')
? (AKSRT_Settings::get_other_page_settings()['header_style'] ?? '1')
: '1';
}
if ($ph_style === 'not') {
$ph_style = '';
}
// '' means "don't show header"
if ($ph_style === '') {
return;
}
$ph_eyebrow = (string) ($args['eyebrow'] ?? '');
$ph_title = (string) ($args['title'] ?? '');
$ph_desc = (string) ($args['desc'] ?? '');
$ph_extra = (string) ($args['extra'] ?? '');
// Cover image: explicit args > global setting > post thumbnail.
$ph_cover = (string) ($args['cover'] ?? '');
if ($ph_cover === '' && class_exists('AKSRT_Settings')) {
$other = AKSRT_Settings::get_other_page_settings();
$ph_cover = (string) ($other['header_cover_img'] ?? '');
}
if ($ph_cover === '' && has_post_thumbnail()) {
$ph_cover = (string) get_the_post_thumbnail_url(get_the_ID(), 'full');
}
// Map style value to CSS modifier class.
$style_class = 'term-page-header--simple';
if ($ph_style === '2') {
$style_class = 'term-page-header--card';
} elseif ($ph_style === '3') {
$style_class = 'term-page-header--cover';
}
// Cover inline style (for cover style).
$cover_style = '';
if ($ph_style === '3' && $ph_cover !== '') {
$cover_style = ' style="background-image:url(\'' . esc_url($ph_cover) . '\')"';
}
?>
<header class="page-header term-page-header <?php echo esc_attr($style_class); ?>">
<?php if ($ph_style === '3' && $ph_cover !== '') : ?>
<div class="term-page-header__cover-bg"<?php echo $cover_style; /* phpcs:ignore -- escaped above */ ?>>
<div class="term-page-header__cover-overlay"></div>
</div>
<?php endif; ?>
<div class="term-page-header__body<?php echo $ph_style === '3' ? ' term-page-header__body--overlay' : ''; ?>">
<div>
<?php if ($ph_eyebrow !== '') : ?>
<p class="term-page-header__eyebrow"><?php echo esc_html($ph_eyebrow); ?></p>
<?php endif; ?>
<h1 class="entry-title"><?php echo $ph_title; /* phpcs:ignore -- caller must escape */ ?></h1>
<?php if ($ph_desc !== '') : ?>
<p class="term-page-header__desc"><?php echo esc_html($ph_desc); ?></p>
<?php endif; ?>
</div>
<?php if ($ph_extra !== '') : ?>
<?php echo $ph_extra; /* phpcs:ignore -- caller must escape */ ?>
<?php endif; ?>
</div>
<?php if ($ph_style === '2' && $ph_cover !== '') : ?>
<div class="term-page-header__cover"<?php echo $cover_style; /* phpcs:ignore -- escaped above */ ?>></div>
<?php endif; ?>
</header>