refactor(assets): vendor 资产迁入标准目录并全仓去除 zibll 标识
- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css, js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img, fonts→assets/fonts; 删除 assets/vendor - libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向 - 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入 路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_* - 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化 - 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→ window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel, .zib-slider→.aksrt-slider, zib_menu_options meta 键等 - 自有 CSS 改名: legacy-utilities/compat-vars/footer shell - admin SPA 重建; 契约测试同步(路径/断言/文件更名) - 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用) 验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过; 契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
This commit is contained in:
1 parent
4f2391fb64
commit
9375b1c30c
591 files changed
+1690
-11041
No files matched your search
@@ -311,7 +311,7 @@ trait DBMigratorPart2 {
|
||||
) {$charset_collate};";
|
||||
dbDelta($sql_coupon_usage);
|
||||
|
||||
// ── charge_card (zibll-style typed card_pass) ──
|
||||
// ── charge_card (legacy-style typed card_pass) ──
|
||||
$sql_charge_card = "CREATE TABLE {$prefix}aksrt_charge_card (
|
||||
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
card VARCHAR(60) NOT NULL DEFAULT '',
|
||||
|
||||
@@ -116,7 +116,7 @@ class DomainModel {
|
||||
public static function default_pay_meta(): array {
|
||||
return [
|
||||
'pay_type' => self::PAY_TYPE_NO,
|
||||
'pay_modo' => '0', // '0' cash | 'points' credits (Zibll)
|
||||
'pay_modo' => '0', // '0' cash | 'points' credits (legacy)
|
||||
'price' => 0.0,
|
||||
'points_price' => 0,
|
||||
'original_price' => 0.0,
|
||||
@@ -124,7 +124,7 @@ class DomainModel {
|
||||
'vip2_price' => 0.0,
|
||||
'vip1_points' => 0,
|
||||
'vip2_points' => 0,
|
||||
'pay_limit' => 0, // 0 all | 1 VIP1+ | 2 VIP2 only (Zibll)
|
||||
'pay_limit' => 0, // 0 all | 1 VIP1+ | 2 VIP2 only (legacy)
|
||||
'version' => '',
|
||||
'size' => '',
|
||||
'license' => '',
|
||||
@@ -143,9 +143,9 @@ class DomainModel {
|
||||
'purchase_limit' => 0,
|
||||
'free_preview' => '',
|
||||
'show_sales' => true,
|
||||
// Zibll: free daily quota overbuy price (cash or points by pay_modo).
|
||||
// legacy: free daily quota overbuy price (cash or points by pay_modo).
|
||||
'download_limit_over_price' => 0.0,
|
||||
// Content cashier: coupon + buyer-facing 推广折扣 (zibll posts_zibpay).
|
||||
// Content cashier: coupon + buyer-facing 推广折扣 (legacy posts_aksrtpay).
|
||||
'coupon_s' => false,
|
||||
'coupon_desc' => '',
|
||||
'pay_rebate_discount' => 0.0,
|
||||
|
||||
@@ -23,13 +23,13 @@ trait FrontSubmitPay {
|
||||
}
|
||||
|
||||
// Only touch pay meta when the form sent pay fields.
|
||||
$has_pay_payload = isset($data['aksrt_pay']) || isset($data['pay_enabled']) || isset($data['zibpay_s']) || isset($data['pay_type']);
|
||||
$has_pay_payload = isset($data['aksrt_pay']) || isset($data['pay_enabled']) || isset($data['aksrtpay_s']) || isset($data['pay_type']);
|
||||
if (!$has_pay_payload) {
|
||||
return ['success' => true];
|
||||
}
|
||||
|
||||
$raw = is_array($data['aksrt_pay'] ?? null) ? $data['aksrt_pay'] : [];
|
||||
$enabled = !empty($data['pay_enabled']) || !empty($data['zibpay_s']);
|
||||
$enabled = !empty($data['pay_enabled']) || !empty($data['aksrtpay_s']);
|
||||
|
||||
$existing = function_exists('aksrt_get_pay_meta') ? aksrt_get_pay_meta($post_id) : DomainModel::default_pay_meta();
|
||||
$meta = is_array($existing) ? $existing : DomainModel::default_pay_meta();
|
||||
@@ -172,7 +172,7 @@ trait FrontSubmitPay {
|
||||
if (!is_array($row)) {
|
||||
continue;
|
||||
}
|
||||
// Accept zibll-ish keys + AKSRT keys.
|
||||
// Accept legacy-ish keys + AKSRT keys.
|
||||
$url = (string) ($row['url'] ?? $row['link'] ?? '');
|
||||
$url = esc_url_raw(trim($url));
|
||||
if ($url === '') {
|
||||
|
||||
@@ -27,7 +27,7 @@ class PostMetaBox {
|
||||
add_action('quick_edit_custom_box', [$this, 'render_quick_edit'], 10, 2);
|
||||
add_action('bulk_edit_custom_box', [$this, 'render_quick_edit'], 10, 2);
|
||||
add_action('admin_footer-edit.php', [$this, 'admin_quick_edit_script']);
|
||||
// Pay-type dropdown on posts list (zibll zibpay_type filter).
|
||||
// Pay-type dropdown on posts list (legacy aksrtpay_type filter).
|
||||
add_action('restrict_manage_posts', [$this, 'render_pay_type_filter']);
|
||||
add_action('pre_get_posts', [$this, 'filter_posts_by_pay_type']);
|
||||
}
|
||||
@@ -163,7 +163,7 @@ class PostMetaBox {
|
||||
<small class="description"><?php esc_html_e('用于列表多图模式,填写附件 ID(逗号分隔)。', 'aksrt'); ?></small>
|
||||
</p>
|
||||
|
||||
<p><strong><?php esc_html_e('侧栏布局(Zibll show_layout)', 'aksrt'); ?></strong></p>
|
||||
<p><strong><?php esc_html_e('侧栏布局(legacy show_layout)', 'aksrt'); ?></strong></p>
|
||||
<?php
|
||||
$show_layout = (string) get_post_meta($post->ID, '_aksrt_show_layout', true);
|
||||
if (!in_array($show_layout, ['no_sidebar', 'sidebar_left', 'sidebar_right'], true)) {
|
||||
@@ -351,7 +351,7 @@ class PostMetaBox {
|
||||
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
|
||||
if (!current_user_can('edit_post', $post_id)) return;
|
||||
|
||||
// Zibll show_layout.
|
||||
// legacy show_layout.
|
||||
$show_layout = isset($_POST['aksrt_show_layout']) ? sanitize_key((string) wp_unslash($_POST['aksrt_show_layout'])) : '';
|
||||
if (!in_array($show_layout, ['no_sidebar', 'sidebar_left', 'sidebar_right'], true)) {
|
||||
$show_layout = '';
|
||||
@@ -471,7 +471,7 @@ class PostMetaBox {
|
||||
}
|
||||
|
||||
/**
|
||||
* Content-pay sales summary for posts list (zibll 销售数据 column parity).
|
||||
* Content-pay sales summary for posts list (legacy 销售数据 column parity).
|
||||
*/
|
||||
private function render_sales_column(int $post_id): void {
|
||||
if (!function_exists('aksrt_get_pay_meta') || !class_exists('AKSRT\\Core\\DomainModel')) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* 文章导航页设置 AJAX(zibll action/post_navs.php parity).
|
||||
* 文章导航页设置 AJAX(legacy action/post_navs.php parity).
|
||||
*
|
||||
* @package AKSRT
|
||||
*/
|
||||
|
||||
@@ -106,7 +106,7 @@ class ResourceMetaBox {
|
||||
<option value="0" <?php selected((string) ($meta['pay_modo'] ?? '0'), '0'); ?>><?php esc_html_e('现金', 'aksrt'); ?></option>
|
||||
<option value="points" <?php selected((string) ($meta['pay_modo'] ?? '0'), 'points'); ?>><?php esc_html_e('积分', 'aksrt'); ?></option>
|
||||
</select>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('对齐 zibll pay_modo:现金价或积分价结算。', 'aksrt'); ?></p>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('对齐 legacy pay_modo:现金价或积分价结算。', 'aksrt'); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -141,7 +141,7 @@ class ResourceMetaBox {
|
||||
<option value="1" <?php selected((int) ($meta['pay_limit'] ?? 0), 1); ?>><?php esc_html_e('仅 VIP1 及以上', 'aksrt'); ?></option>
|
||||
<option value="2" <?php selected((int) ($meta['pay_limit'] ?? 0), 2); ?>><?php esc_html_e('仅 VIP2', 'aksrt'); ?></option>
|
||||
</select>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('对齐 zibll pay_limit:限制购买人群(会员专属资源)。', 'aksrt'); ?></p>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('对齐 legacy pay_limit:限制购买人群(会员专属资源)。', 'aksrt'); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -302,7 +302,7 @@ class ResourceMetaBox {
|
||||
<label for="aksrt_pay_limit_over_price"><?php esc_html_e('超额下载补价', 'aksrt'); ?></label>
|
||||
<div>
|
||||
<input type="number" id="aksrt_pay_limit_over_price" name="aksrt_pay_limit_over_price" value="<?php echo esc_attr((string) ($meta['download_limit_over_price'] ?? 0)); ?>" min="0" step="0.01">
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('免费日限额用尽后允许购买的补价(现金/积分随支付方式)。0 = 不允许超额购买。对齐 zibll download_limit_over_price。', 'aksrt'); ?></p>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('免费日限额用尽后允许购买的补价(现金/积分随支付方式)。0 = 不允许超额购买。对齐 legacy download_limit_over_price。', 'aksrt'); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -314,7 +314,7 @@ class ResourceMetaBox {
|
||||
<label for="aksrt_pay_coupon_s" style="font-weight:400;padding:0;"><?php esc_html_e('允许使用优惠码(全站开关关闭时仍可对本篇启用)', 'aksrt'); ?></label>
|
||||
</div>
|
||||
<textarea id="aksrt_pay_coupon_desc" name="aksrt_pay_coupon_desc" style="min-height:60px;" placeholder="<?php esc_attr_e('本篇优惠码说明,可留空', 'aksrt'); ?>"><?php echo esc_textarea((string) ($meta['coupon_desc'] ?? '')); ?></textarea>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('对齐 zibll coupon_s / coupon_desc。积分支付不使用优惠码。', 'aksrt'); ?></p>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('对齐 legacy coupon_s / coupon_desc。积分支付不使用优惠码。', 'aksrt'); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -322,7 +322,7 @@ class ResourceMetaBox {
|
||||
<label for="aksrt_pay_rebate_discount"><?php esc_html_e('推广优惠金额', 'aksrt'); ?></label>
|
||||
<div>
|
||||
<input type="number" id="aksrt_pay_rebate_discount" name="aksrt_pay_rebate_discount" value="<?php echo esc_attr((string) ($meta['pay_rebate_discount'] ?? 0)); ?>" min="0" step="0.01">
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('有有效推荐人且开启推广返佣时,现金购买可先减此金额(买家侧推广折扣,对齐 zibll pay_rebate_discount)。0 = 不启用。', 'aksrt'); ?></p>
|
||||
<p class="aksrt-pmb__hint"><?php esc_html_e('有有效推荐人且开启推广返佣时,现金购买可先减此金额(买家侧推广折扣,对齐 legacy pay_rebate_discount)。0 = 不启用。', 'aksrt'); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -535,7 +535,7 @@ class ResourceMetaBox {
|
||||
|
||||
update_post_meta($post_id, DomainModel::PAY_META_KEY, $pay_meta);
|
||||
|
||||
// 同步标量字段用于查询(模仿 zibll 的 zibpay_type 同步)
|
||||
// 同步标量字段用于查询(模仿 legacy 的 aksrtpay_type 同步)
|
||||
update_post_meta($post_id, DomainModel::PAY_TYPE_KEY, (string) $pay_meta['pay_type']);
|
||||
$query_price = ($pay_meta['pay_modo'] === 'points')
|
||||
? (float) $pay_meta['points_price']
|
||||
|
||||
+15
-15
@@ -13,14 +13,14 @@ trait ScriptsPart1b {
|
||||
$base_uri = get_template_directory_uri();
|
||||
$version = AKSRT_VERSION;
|
||||
|
||||
$zibll_uri = $base_uri . '/assets/vendor/zibll';
|
||||
$fa5_uri = $base_uri . '/assets/vendor/fontawesome5';
|
||||
$runtime_uri = $base_uri . '/assets';
|
||||
$fa5_uri = $base_uri . '/assets/fontawesome5';
|
||||
|
||||
// Zibll's frontend runtime is the single public dependency stack.
|
||||
// The legacy frontend runtime is the single public dependency stack.
|
||||
wp_deregister_script('jquery');
|
||||
wp_register_script(
|
||||
'jquery',
|
||||
$zibll_uri . '/js/libs/jquery.min.js',
|
||||
$runtime_uri . '/js/runtime/libs/jquery.min.js',
|
||||
[],
|
||||
'1.9.1',
|
||||
false
|
||||
@@ -35,10 +35,10 @@ trait ScriptsPart1b {
|
||||
false
|
||||
);
|
||||
|
||||
wp_enqueue_style('_bootstrap', $zibll_uri . '/css/bootstrap.min.css', [], '3.4.1');
|
||||
wp_enqueue_style('_bootstrap', $runtime_uri . '/css/bootstrap.min.css', [], '3.4.1');
|
||||
wp_enqueue_style('_fontawesome', $fa5_uri . '/css/all.min.css', [], '5.15.4');
|
||||
wp_enqueue_style('_main', $zibll_uri . '/css/main.min.css', ['_bootstrap', '_fontawesome'], $version);
|
||||
wp_enqueue_script('bootstrap', $zibll_uri . '/js/libs/bootstrap.min.js', ['jquery'], '3.4.1', true);
|
||||
wp_enqueue_style('_main', $runtime_uri . '/css/main.min.css', ['_bootstrap', '_fontawesome'], $version);
|
||||
wp_enqueue_script('bootstrap', $runtime_uri . '/js/runtime/libs/bootstrap.min.js', ['jquery'], '3.4.1', true);
|
||||
|
||||
wp_enqueue_style('aksrt-style', get_stylesheet_uri(), ['_main'], $version);
|
||||
$lazy_animation = class_exists('\AKSRT\Settings\Settings')
|
||||
@@ -103,7 +103,7 @@ trait ScriptsPart1b {
|
||||
);
|
||||
};
|
||||
|
||||
// AKSRT domain styles load after Zibll main.css. The old aggregate is
|
||||
// AKSRT domain styles load after legacy main.css. The old aggregate is
|
||||
// intentionally not used because it contains the removed navigation CSS.
|
||||
$enqueue_module('base');
|
||||
$enqueue_module('header-userbox');
|
||||
@@ -154,7 +154,7 @@ trait ScriptsPart1b {
|
||||
);
|
||||
}
|
||||
|
||||
// VIP modal (zibll .pay-vip)
|
||||
// VIP modal (legacy .pay-vip)
|
||||
if ($vip_on) {
|
||||
$vip_css = get_template_directory() . '/assets/css/frontend/vip-modal.css';
|
||||
if (file_exists($vip_css)) {
|
||||
@@ -243,7 +243,7 @@ trait ScriptsPart1b {
|
||||
if ($is_single_post) {
|
||||
// Prefer discrete enqueues over CSS @import (cache-bust + parallel load).
|
||||
$single_parts = [
|
||||
'zibll-utilities',
|
||||
'legacy-utilities',
|
||||
'single-post/shell',
|
||||
'single-post/content',
|
||||
'single-post/code-blocks',
|
||||
@@ -269,7 +269,7 @@ trait ScriptsPart1b {
|
||||
// Keep aggregator handle for any third-party deps that target it.
|
||||
$enqueue_module('single-post');
|
||||
$enqueue_module('post-card'); // 相关推荐使用 post-card 局部样式
|
||||
// Comments pack (zibll 1:1 discrete files).
|
||||
// Comments pack (legacy 1:1 discrete files).
|
||||
$comment_parts = ['comments/shell', 'comments/mobile-item'];
|
||||
$comment_dep = $deps[0] ?? $core_dep;
|
||||
foreach ($comment_parts as $part) {
|
||||
@@ -498,8 +498,8 @@ trait ScriptsPart1b {
|
||||
);
|
||||
}
|
||||
|
||||
// 网址导航页(zibll links.php)
|
||||
// 文章导航页(zibll postsnavs.php)
|
||||
// 网址导航页(legacy links.php)
|
||||
// 文章导航页(legacy postsnavs.php)
|
||||
if (is_page_template('templates/pages/page-posts-navs.php')) {
|
||||
$page_navs_js = get_template_directory() . '/assets/js/page-navs.js';
|
||||
if (file_exists($page_navs_js)) {
|
||||
@@ -682,7 +682,7 @@ trait ScriptsPart1b {
|
||||
$enqueue_module('pages');
|
||||
}
|
||||
|
||||
// Resource archives use the canonical Zibll article-card stylesheet.
|
||||
// Resource archives use the canonical legacy article-card stylesheet.
|
||||
if ($is_resource_archive || $is_single_resource || ($is_cms_mode && ($is_home_or_archive || $is_static_page) && !$is_fixed_homepage)) {
|
||||
if (!$is_home_or_archive && !$is_single_post && !$is_static_page) {
|
||||
$enqueue_module('post-card');
|
||||
@@ -779,7 +779,7 @@ trait ScriptsPart1b {
|
||||
);
|
||||
}
|
||||
|
||||
// Badges UI: user center + public profile (zibll medal modal/list).
|
||||
// Badges UI: user center + public profile (legacy medal modal/list).
|
||||
if (class_exists('\AKSRT\User\Badges') && \AKSRT\User\Badges::enabled()) {
|
||||
$is_badge_surface = $is_profile_page
|
||||
|| is_author()
|
||||
|
||||
+12
-12
@@ -32,16 +32,16 @@ trait ScriptsPart1c {
|
||||
|
||||
$needs_post_list_media = wp_style_is('aksrt-post-card', 'enqueued');
|
||||
|
||||
$zibll_uri = $base_uri . '/assets/vendor/zibll';
|
||||
$zibll_loader_path = get_template_directory() . '/assets/vendor/zibll/js/loader.js';
|
||||
$zibll_main_path = get_template_directory() . '/assets/vendor/zibll/js/main.min.js';
|
||||
$zibll_loader_version = file_exists($zibll_loader_path) ? (string) filemtime($zibll_loader_path) : $version;
|
||||
$zibll_runtime_version = file_exists($zibll_main_path) ? (string) filemtime($zibll_main_path) : $version;
|
||||
$runtime_uri = $base_uri . '/assets';
|
||||
$runtime_loader_path = get_template_directory() . '/assets/js/runtime/loader.js';
|
||||
$runtime_main_path = get_template_directory() . '/assets/js/runtime/main.min.js';
|
||||
$runtime_loader_version = file_exists($runtime_loader_path) ? (string) filemtime($runtime_loader_path) : $version;
|
||||
$runtime_version = file_exists($runtime_main_path) ? (string) filemtime($runtime_main_path) : $version;
|
||||
wp_enqueue_script(
|
||||
'loader_js',
|
||||
$zibll_uri . '/js/loader.js',
|
||||
$runtime_uri . '/js/runtime/loader.js',
|
||||
['jquery', 'bootstrap'],
|
||||
$zibll_loader_version,
|
||||
$runtime_loader_version,
|
||||
true
|
||||
);
|
||||
wp_localize_script(
|
||||
@@ -50,8 +50,8 @@ trait ScriptsPart1c {
|
||||
[
|
||||
'views' => '',
|
||||
'www' => home_url('/'),
|
||||
'uri' => $zibll_uri,
|
||||
'ver' => $zibll_runtime_version,
|
||||
'uri' => $runtime_uri,
|
||||
'ver' => $runtime_version,
|
||||
'pay_mark' => '¥',
|
||||
'pay_currency_unit' => __('元', 'aksrt'),
|
||||
'imgbox' => false,
|
||||
@@ -108,7 +108,7 @@ trait ScriptsPart1c {
|
||||
true
|
||||
);
|
||||
|
||||
// AKSRT-only modules register after the Zibll loader; navigation is owned by main.min.js.
|
||||
// AKSRT-only modules register after the legacy loader; navigation is owned by main.min.js.
|
||||
wp_enqueue_script(
|
||||
'aksrt-rehydrate',
|
||||
$base_uri . '/assets/js/rehydrate.js',
|
||||
@@ -170,7 +170,7 @@ trait ScriptsPart1c {
|
||||
'aksrt-core-comments' => 'comments.js',
|
||||
'aksrt-core-comment-fixed' => 'comment-fixed-input.js',
|
||||
'aksrt-core-comment-move' => 'comment-move-form.js',
|
||||
// Shared zibll-parity list/modal engines (before pagination consumers).
|
||||
// Shared legacy-parity list/modal engines (before pagination consumers).
|
||||
'aksrt-core-ajax-list' => 'ajax-list.js',
|
||||
'aksrt-core-modal-telemetry' => 'modal-telemetry.js',
|
||||
'aksrt-core-request' => 'request.js',
|
||||
@@ -489,7 +489,7 @@ trait ScriptsPart1c {
|
||||
}
|
||||
|
||||
// Page navigation (TOC highlight, smooth scroll, doc search)
|
||||
// 评论回复脚本:由 assets/js/core/comment-move-form.js 提供(zibll 同款机制),
|
||||
// 评论回复脚本:由 assets/js/core/comment-move-form.js 提供(legacy 同款机制),
|
||||
// 不加载 WP comment-reply,避免两套 moveForm 冲突。
|
||||
|
||||
$runtime_routes = $this->resolve_frontend_routes();
|
||||
|
||||
@@ -125,7 +125,7 @@ trait ScriptsPart2 {
|
||||
$classes[] = 'auth-page';
|
||||
}
|
||||
|
||||
// Zibll site-layout-1/2/3 (no sidebar / right / left).
|
||||
// legacy site-layout-1/2/3 (no sidebar / right / left).
|
||||
if (function_exists('aksrt_body_layout_classes')) {
|
||||
foreach (aksrt_body_layout_classes() as $layout_class) {
|
||||
$classes[] = $layout_class;
|
||||
|
||||
@@ -11,7 +11,7 @@ trait SetupPart2 {
|
||||
|
||||
|
||||
/**
|
||||
* 隐藏默认WordPress菜单项目 + zibll 风格运营菜单分隔线
|
||||
* 隐藏默认WordPress菜单项目 + 原主题风格运营菜单分隔线
|
||||
*/
|
||||
public function hide_default_menus(): void {
|
||||
// 移除评论默认菜单(已移除该操作以恢复 Comments 菜单)
|
||||
|
||||
@@ -29,7 +29,7 @@ class Shortcodes {
|
||||
add_shortcode('reply', [$this, 'render_reply']);
|
||||
add_shortcode('vip', [$this, 'render_vip']);
|
||||
add_shortcode('payshow', [$this, 'render_payshow']);
|
||||
// Zibll-compatible hidecontent alias (type=payshow|reply|login|vip|password|…)
|
||||
// legacy-compatible hidecontent alias (type=payshow|reply|login|vip|password|…)
|
||||
add_shortcode('hidecontent', [$this, 'render_hidecontent']);
|
||||
add_shortcode('content', [$this, 'render_content_gate']);
|
||||
// 文章归档 / 个人资料卡 → Templates 模板
|
||||
@@ -139,7 +139,7 @@ class Shortcodes {
|
||||
}
|
||||
|
||||
/**
|
||||
* Zibll [hidecontent type="payshow|reply|login|…"]…[/hidecontent]
|
||||
* legacy [hidecontent type="payshow|reply|login|…"]…[/hidecontent]
|
||||
*/
|
||||
public function render_hidecontent(array $atts = [], string $content = ''): string {
|
||||
$atts = shortcode_atts([
|
||||
|
||||
Reference in new issue
Block a user