feat(shell): header multifunc + window._win + float cart/VIP

Multi-type publish/VIP CTA in nav, zibll-like _win runtime bridge for
lightbox flags, and floating shop_cart/pay_vip commerce buttons.
This commit is contained in:
2026-07-18 22:16:17 +08:00
parent 09029116ae
commit f929cc649c
9 changed files with 994 additions and 441 deletions
@@ -0,0 +1,114 @@
/**
* Header multi-function publish cluster + VIP CTA.
*
* @package AKSRT
*/
.navbar-but-cluster {
display: flex;
align-items: center;
gap: 8px;
}
.navbar-but-cluster .navbar-but,
.navbar-but-cluster .navbar-vip {
display: inline-flex;
align-items: center;
}
.navbar-but-cluster .btn-primary,
.navbar-but-cluster .but.btn-primary,
.navbar-but-cluster .navbar-newposts.but,
.navbar-but-cluster a.but {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 14px;
border-radius: 20px;
background: var(--color-primary, #2f6df6);
color: #fff;
text-decoration: none;
border: 0;
font-size: 13px;
line-height: 1.4;
white-space: nowrap;
}
.navbar-but-cluster .payvip-icon.but {
background: linear-gradient(90deg, #ff6b6b, #f04494);
color: #fff;
padding: 6px 12px;
border-radius: 20px;
text-decoration: none;
font-size: 13px;
}
.newadd-btns.hover-show {
position: relative;
display: inline-block;
}
.newadd-btns .drop-newadd,
.newadd-btns .hover-show-con {
display: none;
position: absolute;
top: calc(100% + 6px);
right: 0;
min-width: 140px;
background: var(--main-bg-color, #fff);
border-radius: 8px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
padding: 6px 0;
z-index: 50;
}
.newadd-btns.hover-show:hover .drop-newadd,
.newadd-btns.hover-show:hover .hover-show-con,
.newadd-btns.hover-show:focus-within .drop-newadd {
display: block;
}
.newadd-btns__item {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 14px;
color: inherit;
text-decoration: none;
white-space: nowrap;
}
.newadd-btns__item:hover {
background: var(--surface-2, rgba(0, 0, 0, 0.04));
color: var(--focus-color, var(--color-primary));
}
/* float commerce */
.float-btn-shop-cart {
position: relative;
}
.float-btn-shop-cart badge,
.float-btn-shop-cart [cart-count] {
position: absolute;
top: -4px;
right: -4px;
min-width: 16px;
height: 16px;
padding: 0 4px;
border-radius: 10px;
background: #e74c3c;
color: #fff;
font-size: 11px;
line-height: 16px;
text-align: center;
}
.float-btn-shop-cart badge:empty,
.float-btn-shop-cart [cart-count=""] {
display: none;
}
.float-btn.pay-vip {
color: #f5a623;
}
+24 -1
View File
@@ -112,6 +112,16 @@
var MAX_ZOOM_DESKTOP = 2;
var MAX_ZOOM_MOBILE = 3;
function lightboxFlag(key, fallback) {
var w = window._win || (window.aksrtData && window.aksrtData.imgbox) || {};
if (w[key] === undefined || w[key] === null || w[key] === '') return fallback;
return w[key] === true || w[key] === 1 || w[key] === '1';
}
function lightboxEnabled() {
return lightboxFlag('imgbox', true);
}
function resolveFullUrl(img) {
var full = img.getAttribute('data-full-url') || img.getAttribute('data-src') || '';
if (full) return full;
@@ -134,6 +144,7 @@
}
function createLightbox() {
if (!lightboxEnabled()) return;
if (lightboxEl) return;
lightboxEl = document.createElement('div');
@@ -161,6 +172,18 @@
lightboxCounter = lightboxEl.querySelector('.aksrt-lightbox__counter');
lightboxThumbsWrap = lightboxEl.querySelector('.aksrt-lightbox__thumbs');
// Apply window._win imgbox feature flags
var zoomBtn = lightboxEl.querySelector('.toggle-zoom');
var thumbsBtn = lightboxEl.querySelector('.toggle-thumbs');
var playBtn = lightboxEl.querySelector('.toggle-play');
var fullBtn = lightboxEl.querySelector('.toggle-full');
var downBtn = lightboxEl.querySelector('.aksrt-lightbox__download');
if (zoomBtn) zoomBtn.hidden = !lightboxFlag('imgbox_zoom', true);
if (thumbsBtn) thumbsBtn.hidden = !lightboxFlag('imgbox_thumbs', true);
if (playBtn) playBtn.hidden = !lightboxFlag('imgbox_play', false);
if (fullBtn) fullBtn.hidden = !lightboxFlag('imgbox_full', true);
if (downBtn) downBtn.hidden = !lightboxFlag('imgbox_down', false);
// Close
lightboxEl.querySelector('.aksrt-lightbox__close').addEventListener('click', function (e) { e.stopPropagation(); closeLightbox(); });
lightboxEl.addEventListener('click', function (e) { if (e.target === lightboxEl || e.target.classList.contains('aksrt-lightbox__stage')) closeLightbox(); });
@@ -435,7 +458,7 @@
var img = e.target.closest(TRIGGER_SEL);
if (!img) return;
if (img.width < 100 || img.height < 100) return;
if (isNoLightbox(img)) return;
if (!lightboxEnabled() || isNoLightbox(img)) return;
e.preventDefault();
+23 -1
View File
@@ -396,6 +396,18 @@ if ($floating_enabled) :
<i class="fas fa-sun float-btn__icon-sun" aria-hidden="true"></i>
<i class="fas fa-moon float-btn__icon-moon" aria-hidden="true"></i>
</a>
<?php elseif ($item_type === 'shop_cart') :
$cart_html = function_exists('aksrt_get_float_shop_cart_html') ? aksrt_get_float_shop_cart_html($item) : '';
if ($cart_html !== '') {
echo $cart_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
?>
<?php elseif ($item_type === 'pay_vip') :
$vip_html = function_exists('aksrt_get_float_pay_vip_html') ? aksrt_get_float_pay_vip_html($item) : '';
if ($vip_html !== '') {
echo $vip_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
?>
<?php elseif ($item_type === 'service_wechat') :
$item_class .= ' service-wechat';
$wechat_img = $item['wechat_img'] ?? ($item['qrcode_img'] ?? '');
@@ -471,7 +483,17 @@ if ($floating_enabled) :
<?php endif; ?>
</a>
<?php endif; ?>
<?php endforeach; ?>
<?php
// Commerce floats when admin list omits them.
$float_types = array_column($floating_items, 'type');
if (!in_array('shop_cart', $float_types, true) && function_exists('aksrt_get_float_shop_cart_html')) {
echo aksrt_get_float_shop_cart_html(['icon' => 'fas fa-shopping-cart']); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
if (!in_array('pay_vip', $float_types, true) && function_exists('aksrt_get_float_pay_vip_html')) {
echo aksrt_get_float_pay_vip_html(['icon' => 'fa fa-diamond']); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
?>
<?php endforeach; ?>
</div>
<?php endif; ?>
+9 -3
View File
@@ -261,13 +261,19 @@ if (!empty($aksrt_bg_styles)) {
</form>
<?php endif; ?>
<div class="nav-actions__cta">
<?php if ($aksrt_can_publish) : ?>
<div class="nav-actions__cta navbar-but-cluster">
<?php
if (function_exists('aksrt_render_header_menu_buttons')) {
echo aksrt_render_header_menu_buttons(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} elseif (!empty($aksrt_can_publish)) {
?>
<a class="btn-primary" href="<?php echo esc_url($aksrt_publish_url); ?>">
<i class="fas fa-pen-nib" aria-hidden="true"></i>
<span><?php esc_html_e('发布', 'aksrt'); ?></span>
</a>
<?php endif; ?>
<?php
}
?>
<?php if (in_array('pc_nav', $aksrt_theme_toggle_positions, true)) : ?>
<button type="button" class="btn-outline theme-toggle-desktop" id="theme-toggle-desktop" title="<?php esc_attr_e('切换亮暗色', 'aksrt'); ?>">
+2
View File
@@ -45,6 +45,8 @@ require_once AKSRT_DIR . '/inc/helpers/aksrt-null.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-ajax-list.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-links.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-header-userbox.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-header-menu-buttons.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-runtime-win.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-identity.php';
require_once AKSRT_DIR . '/inc/helpers/aksrt-rewards.php';
require_once AKSRT_DIR . '/inc/helpers/menu-decoration.php';
+7
View File
@@ -1,6 +1,13 @@
<?php
defined('ABSPATH') || exit;
// window._win runtime bridge (zibll zib_win_var)
add_action('wp_head', static function () {
if (function_exists('aksrt_print_win_var')) {
aksrt_print_win_var();
}
}, 1);
// 前端隐藏 WordPress Admin Bar
// ============================================================
+188
View File
@@ -0,0 +1,188 @@
<?php
/**
* Header multi-function cluster (zibll zib_menu_button publish/VIP subset).
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
if (!function_exists('aksrt_get_header_newposts_config')) :
/**
* @return array{enabled:bool,text:string,radius:int,class:string,types:string[]}
*/
function aksrt_get_header_newposts_config(): array {
$cfg = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_header_newposts_config()
: ['enabled' => true, 'text' => __('发布', 'aksrt'), 'radius' => 20, 'class' => ''];
$all = class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_all() : [];
// Prefer publish_btn from header nav when newposts not explicitly set.
$nav = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_header_nav_settings()
: ['publish_btn' => true];
if (empty($cfg['enabled']) && !empty($nav['publish_btn'])) {
$cfg['enabled'] = true;
}
$types = [];
if (!empty($all['header_newposts_types']) && is_array($all['header_newposts_types'])) {
$types = array_values(array_filter(array_map('sanitize_key', $all['header_newposts_types'])));
}
if (!$types) {
$types = ['post'];
if (class_exists('\AKSRT\Settings\Settings')) {
$forum = \AKSRT\Settings\Settings::get_forum_settings();
$shop = \AKSRT\Settings\Settings::get_shop_settings();
if (!empty($forum['enabled'])) {
$types[] = 'topic';
}
if (!empty($shop['enabled'])) {
$types[] = 'product';
}
}
}
$cfg['types'] = $types;
return $cfg;
}
endif;
if (!function_exists('aksrt_get_new_add_actions')) :
/**
* Build multi-type publish actions.
*
* @param string[] $types post|topic|product
* @return list<array{type:string,url:string,label:string,icon:string}>
*/
function aksrt_get_new_add_actions(array $types = ['post']): array {
$out = [];
foreach ($types as $type) {
$type = sanitize_key((string) $type);
if ($type === 'post') {
$url = function_exists('aksrt_get_new_post_url') ? aksrt_get_new_post_url() : admin_url('post-new.php');
if ($url === '') {
continue;
}
$out[] = [
'type' => 'post',
'url' => $url,
'label' => __('写文章', 'aksrt'),
'icon' => 'fa fa-file-text-o',
];
} elseif ($type === 'topic') {
$url = function_exists('aksrt_get_forum_compose_url') ? aksrt_get_forum_compose_url() : '';
if ($url === '') {
continue;
}
$out[] = [
'type' => 'topic',
'url' => $url,
'label' => __('发帖', 'aksrt'),
'icon' => 'fa fa-comments-o',
];
} elseif ($type === 'product') {
// Prefer front product edit page when registered.
$url = '';
if (function_exists('aksrt_get_product_edit_url')) {
$url = (string) aksrt_get_product_edit_url();
}
if ($url === '') {
// Fallback: product-edit page template lookup is optional.
$url = home_url('/?page_id=0');
// Use admin product CPT if available.
$url = admin_url('post-new.php?post_type=aksrt_product');
}
$out[] = [
'type' => 'product',
'url' => $url,
'label' => __('发布商品', 'aksrt'),
'icon' => 'fa fa-shopping-bag',
];
}
}
return $out;
}
endif;
if (!function_exists('aksrt_render_new_add_btns')) :
/**
* Multi-type publish button (zibll newadd-btns).
*
* @param string[] $types
*/
function aksrt_render_new_add_btns(array $types, string $class = '', string $label = ''): string {
$actions = aksrt_get_new_add_actions($types);
if (!$actions) {
return '';
}
if ($label === '') {
$label = __('发布', 'aksrt');
}
$class = trim('newadd-btns ' . $class);
if (count($actions) === 1) {
$a = $actions[0];
return '<a rel="nofollow" class="' . esc_attr(trim($class . ' but')) . '" href="' . esc_url($a['url']) . '">'
. '<i class="' . esc_attr($a['icon']) . '" aria-hidden="true"></i> '
. wp_kses_post($label)
. '</a>';
}
$html = '<span class="' . esc_attr($class) . ' hover-show">';
$html .= '<a href="javascript:;" class="but newadd-btns__toggle" rel="nofollow">' . wp_kses_post($label) . ' <i class="fa fa-caret-down" aria-hidden="true"></i></a>';
$html .= '<div class="hover-show-con dropdown-menu drop-newadd">';
foreach ($actions as $a) {
$html .= '<a rel="nofollow" class="newadd-btns__item" href="' . esc_url($a['url']) . '">';
$html .= '<i class="' . esc_attr($a['icon']) . '" aria-hidden="true"></i> ' . esc_html($a['label']);
$html .= '</a>';
}
$html .= '</div></span>';
return $html;
}
endif;
if (!function_exists('aksrt_render_header_menu_buttons')) :
/**
* Publish + optional VIP open button for header CTA.
*/
function aksrt_render_header_menu_buttons(): string {
$cfg = aksrt_get_header_newposts_config();
$html = '';
if (!empty($cfg['enabled'])) {
$class = 'btn-primary navbar-newposts';
if (!empty($cfg['class'])) {
$class .= ' ' . $cfg['class'];
}
$radius = (int) ($cfg['radius'] ?? 20);
$style = $radius > 0 ? ' style="border-radius:' . $radius . 'px"' : '';
$label = (string) ($cfg['text'] ?? __('发布', 'aksrt'));
// Strip outer <i> if present in settings HTML text — keep simple.
$btn = aksrt_render_new_add_btns($cfg['types'] ?? ['post'], $class, $label);
if ($btn !== '') {
$html .= '<div class="navbar-form navbar-right navbar-but"' . $style . '>' . $btn . '</div>';
}
}
// VIP open CTA for guests / non-VIP.
$user_id = get_current_user_id();
$vip_url = function_exists('aksrt_get_vip_purchase_url') ? aksrt_get_vip_purchase_url() : (function_exists('aksrt_get_user_center_url') ? aksrt_get_user_center_url('vip') : '#');
$show_vip = true;
if (class_exists('\AKSRT\Settings\Settings') && method_exists('\AKSRT\Settings\Settings', 'get_vip_settings')) {
$vs = \AKSRT\Settings\Settings::get_vip_settings();
$show_vip = !empty($vs['enabled']) || !empty($vs['vip1_enabled']) || !empty($vs['vip2_enabled']);
}
if ($show_vip) {
$is_vip = false;
if ($user_id > 0 && function_exists('aksrt_get_user_vip_level')) {
$is_vip = (int) aksrt_get_user_vip_level($user_id) > 0;
}
if (!$is_vip) {
$cls = $user_id ? 'pay-vip' : 'signin-loader';
$html .= '<div class="navbar-form navbar-right navbar-vip hover-show inline-block">';
$html .= '<a class="but jb-red radius payvip-icon ml10 ' . esc_attr($cls) . '" href="' . ($user_id ? esc_url($vip_url) : 'javascript:;') . '">';
$html .= '<i class="fa fa-diamond em12 mr3" aria-hidden="true"></i>' . esc_html__('开通会员', 'aksrt');
$html .= '</a></div>';
}
}
return $html;
}
endif;
+179
View File
@@ -0,0 +1,179 @@
<?php
/**
* Float button commerce types + runtime window._win bridge (zibll parity).
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
if (!function_exists('aksrt_get_float_shop_cart_html')) :
/**
* Floating shop cart button with badge.
*/
function aksrt_get_float_shop_cart_html(array $item = []): string {
if (!is_user_logged_in()) {
return '';
}
$shop_on = true;
if (class_exists('\AKSRT\Settings\Settings')) {
$shop = \AKSRT\Settings\Settings::get_shop_settings();
$shop_on = !empty($shop['enabled']);
}
if (!$shop_on) {
return '';
}
// Skip on cart page.
if (function_exists('is_page_template') && is_page_template('templates/pages/page-cart.php')) {
return '';
}
$url = function_exists('aksrt_get_cart_page_url') ? aksrt_get_cart_page_url() : '';
if ($url === '') {
return '';
}
$count = 0;
if (class_exists('\AKSRT\Shop\Shop')) {
$count = (int) \AKSRT\Shop\Shop::get_instance()->get_cart_count(get_current_user_id());
}
$icon = !empty($item['icon']) ? (string) $item['icon'] : 'fas fa-shopping-cart';
$style = [];
if (!empty($item['color'])) {
$style[] = '--this-color:' . esc_attr((string) $item['color']);
}
if (!empty($item['bg'])) {
$style[] = '--this-bg:' . esc_attr((string) $item['bg']);
}
$style_attr = $style ? ' style="' . implode(';', $style) . '"' : '';
$badge = $count > 0 ? (string) min(99, $count) : '';
return '<a class="float-btn float-btn-shop-cart nowave" href="' . esc_url($url) . '" title="' . esc_attr__('购物车', 'aksrt') . '"' . $style_attr . '>'
. '<i class="' . esc_attr($icon) . '" aria-hidden="true"></i>'
. '<badge cart-count="' . esc_attr($badge) . '">' . esc_html($badge) . '</badge>'
. '</a>';
}
endif;
if (!function_exists('aksrt_get_float_pay_vip_html')) :
/**
* Floating VIP open button.
*/
function aksrt_get_float_pay_vip_html(array $item = []): string {
$show_vip = true;
if (class_exists('\AKSRT\Settings\Settings') && method_exists('\AKSRT\Settings\Settings', 'get_vip_settings')) {
$vs = \AKSRT\Settings\Settings::get_vip_settings();
$show_vip = !empty($vs['enabled']) || !empty($vs['vip1_enabled']) || !empty($vs['vip2_enabled']);
}
if (!$show_vip) {
return '';
}
$user_id = get_current_user_id();
$level = 0;
if ($user_id > 0 && function_exists('aksrt_get_user_vip_level')) {
$level = (int) aksrt_get_user_vip_level($user_id);
}
// Hide for max VIP if we only have 2 tiers and already VIP.
if ($level >= 2) {
return '';
}
$vip_url = function_exists('aksrt_get_vip_purchase_url')
? aksrt_get_vip_purchase_url()
: (function_exists('aksrt_get_user_center_url') ? aksrt_get_user_center_url('vip') : '#');
$title = $level === 1 ? __('升级会员', 'aksrt') : __('开通会员', 'aksrt');
$icon = !empty($item['icon']) ? (string) $item['icon'] : 'fa fa-diamond';
$cls = $user_id > 0 ? 'float-btn pay-vip' : 'float-btn signin-loader';
$href = $user_id > 0 ? $vip_url : 'javascript:;';
$style = [];
if (!empty($item['color'])) {
$style[] = '--this-color:' . esc_attr((string) $item['color']);
}
if (!empty($item['bg'])) {
$style[] = '--this-bg:' . esc_attr((string) $item['bg']);
}
$style_attr = $style ? ' style="' . implode(';', $style) . '"' : '';
return '<a class="' . esc_attr($cls) . '" href="' . esc_url($href) . '" title="' . esc_attr($title) . '"' . $style_attr . '>'
. '<i class="' . esc_attr($icon) . '" aria-hidden="true"></i>'
. '</a>';
}
endif;
if (!function_exists('aksrt_get_win_runtime_config')) :
/**
* Build window._win payload (zibll zib_win_var subset).
*
* @return array<string,mixed>
*/
function aksrt_get_win_runtime_config(): array {
$post_display = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_post_page_settings()
: [];
$is_mobile = wp_is_mobile();
$list_style = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_post_list_style_settings()
: [];
$signin = function_exists('aksrt_get_login_url')
? aksrt_get_login_url(function_exists('aksrt_get_current_url') ? aksrt_get_current_url() : home_url('/'))
: wp_login_url();
$signup = function_exists('aksrt_get_register_url')
? aksrt_get_register_url()
: wp_registration_url();
$views = 0;
if (is_singular()) {
$views = (int) get_queried_object_id();
}
return [
'views' => $views,
'www' => home_url('/'),
'uri' => get_template_directory_uri(),
'ver' => defined('AKSRT_VERSION') ? AKSRT_VERSION : '3.4.0-dev',
'imgbox' => !isset($post_display['lightbox']) || !empty($post_display['lightbox']) ? '1' : '',
'imgbox_type' => 'group',
'imgbox_thumbs' => !isset($post_display['lightbox_thumbs']) || !empty($post_display['lightbox_thumbs']) ? '1' : '',
'imgbox_zoom' => !isset($post_display['lightbox_zoom']) || !empty($post_display['lightbox_zoom']) ? '1' : '',
'imgbox_full' => !isset($post_display['lightbox_full']) || !empty($post_display['lightbox_full']) ? '1' : '',
'imgbox_play' => !empty($post_display['lightbox_play']) ? '1' : '',
'imgbox_down' => !empty($post_display['lightbox_down']) ? '1' : '',
'sign_type' => class_exists('\AKSRT\Settings\Settings')
? (string) (\AKSRT\Settings\Settings::get_all()['user_sign_type'] ?? 'page')
: 'page',
'signin_url' => $signin,
'signup_url' => $signup,
'ajax_url' => admin_url('admin-ajax.php'),
'ajaxpager' => '1',
'ajax_trigger' => (string) ($list_style['ajax_trigger_text'] ?? __('加载更多', 'aksrt')),
'ajax_nomore' => (string) ($list_style['ajax_nomore_text'] ?? __('没有更多了', 'aksrt')),
'qj_loading' => __('加载中...', 'aksrt'),
'is_mobile' => $is_mobile ? '1' : '',
'is_logged_in' => is_user_logged_in() ? '1' : '',
'user_id' => get_current_user_id(),
'rest_url' => esc_url_raw(rest_url('aksrt/v1')),
'rest_nonce' => wp_create_nonce('wp_rest'),
'nonce' => wp_create_nonce('aksrt_public_nonce'),
];
}
endif;
if (!function_exists('aksrt_print_win_var')) :
/**
* Echo window._win + alias window.aksrtData bridge.
*/
function aksrt_print_win_var(): void {
static $done = false;
if ($done) {
return;
}
$done = true;
$cfg = aksrt_get_win_runtime_config();
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '<script type="text/javascript">window._win=' . wp_json_encode($cfg, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . ';'
. 'window.aksrtData=window.aksrtData||{};'
. 'window.aksrtData.ajaxUrl=window.aksrtData.ajaxUrl||window._win.ajax_url;'
. 'window.aksrtData.siteUrl=window.aksrtData.siteUrl||window._win.www;'
. 'window.aksrtData.themeUri=window.aksrtData.themeUri||window._win.uri;'
. 'window.aksrtData.restUrl=window.aksrtData.restUrl||window._win.rest_url;'
. 'window.aksrtData.restNonce=window.aksrtData.restNonce||window._win.rest_nonce;'
. 'window.aksrtData.nonce=window.aksrtData.nonce||window._win.nonce;'
. 'window.aksrtData.imgbox=window._win;'
. '</script>' . "\n";
}
endif;
+12
View File
@@ -150,6 +150,18 @@ trait ScriptsPart1b {
);
}
// Header multi-function publish/VIP cluster
$hmb_css = get_template_directory() . '/assets/css/frontend/nav/header-menu-buttons.css';
if (file_exists($hmb_css)) {
wp_enqueue_style(
'aksrt-header-menu-buttons',
$base_uri . '/assets/css/frontend/nav/header-menu-buttons.css',
[$core_dep],
(string) filemtime($hmb_css)
);
}
// Print stylesheet — only load on singular pages
if (is_singular()) {
wp_enqueue_style(