删除 - 微信二维码:配置项 s_wechat / 隐藏上传 s_wechat_url、footer 浮动块、 默认图注册表条目、CSS 规则、wechat.png - Font Awesome:选项 g_fontawesome、theme-core 入队、58KB 样式、 assets/fonts/webfonts 全套字体(2.8MB,CSS 删后零引用) - 多人模式:选项 multiusers、page-content / page-toolbar 两处分支 选项重排(9 组 → 10 组) 全站配置 / 顶部导航 / 首页配置 / 文章配置 / 站长信息 / 页脚配置 / 哀悼模式 / 收录与统计 / 邮件通知 / 自定义代码 哀悼 5 个字段从「首页配置」独立成「哀悼模式」——它不是首页专属功能。 g_404/g_chrome/g_animate/g_gravatar 等归「全站配置」,s_copyright 归「页脚配置」。 修复 - footer.php 版权行此前无条件硬编码,后台 s_copyright 填了不生效 - 附加日期命中时 yang_mourning_today_name() 返回空串,提示条退化成 只说「今天是纪念日」而不给名字 - 小屏哀悼提示条 padding 写成 `7px 40px 7px 12px`(右宽左窄给关闭按钮 让位),内容盒中心 181 vs 视口中心 195,整体偏左 14px。关闭按钮本就 absolute 不占内部流,改为左右等宽 + 缩小按钮。桌面端同类错误 3.2.14 已修, 此处漏了同一个断点。 加载顺序 theme-options.php 可能早于 theme-mourning.php / theme-custom-code.php 加载, 新增 yang_opt_* 四个 function_exists 包装,避免裸调用导致后台白屏。 验证:静态断言 62/0 · 后台面板 14/0 · 反向验证 7/7 与 44/0 · 提示条 4 视口几何 20/0(注入旧 bug 精确复现 -14px)· 线上 3 视口 33/0
97 lines
4.8 KiB
PHP
97 lines
4.8 KiB
PHP
<?php
|
|
/**
|
|
* 主题页脚
|
|
* @author Yongquan Yang <yangyq.net>
|
|
* @license MIT License
|
|
* @version 2020.04.12
|
|
*/
|
|
?>
|
|
<div class="k-footer">
|
|
<div class="f-toolbox">
|
|
<div class="gotop">
|
|
<div class="gotop-btn">
|
|
<span class="kicon i-up"></span>
|
|
</div>
|
|
</div>
|
|
<div class="search">
|
|
<span class="kicon i-find"></span>
|
|
<form class="search-form" role="search" method="get" action="<?php echo home_url('/'); ?>">
|
|
<input type="text" name="s" id="search" placeholder="<?php _e('搜点什么呢?', 'kratos'); ?>" style="display:none"/>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-12 text-center">
|
|
<p class="social">
|
|
<?php
|
|
$social = array('s_sina', 's_bilibili', 's_coding', 's_gitee', 's_twitter', 's_telegram', 's_linkedin', 's_youtube', 's_github', 's_stackflow', 's_email');
|
|
foreach ($social as $social) {
|
|
if (kratos_option($social)) {
|
|
echo '<a target="_blank" rel="nofollow" href="' . kratos_option($social . '_url') . '"><i class="kicon i-' . str_replace("s_", "", $social) . '"></i></a>';
|
|
}
|
|
}
|
|
?>
|
|
</p>
|
|
<?php
|
|
$sitename = get_bloginfo('name');
|
|
/* 版权行:优先用后台「页脚配置 - 版权信息」里填的内容。
|
|
早先这里是无条件硬编码,后台那个输入框填了也不生效 ——
|
|
用户在后台改了、前台毫无变化,是很容易被当成 bug 的
|
|
那种"功能失灵"。空值才回退到自动拼的默认文案。 */
|
|
$copy = kratos_option('s_copyright', '');
|
|
if (!is_string($copy) || trim($copy) === '') {
|
|
$copy = 'COPYRIGHT © ' . date('Y') . ' ' . $sitename . ' 版权所有';
|
|
}
|
|
/* 输出必须转义。这个值是后台管理员填的,但后台账号被盗
|
|
或者多人站点里有人权限被降,都会让这里变成注入点;
|
|
而且版权行里出现 <b> 之类也只会显示成怪异的样子。
|
|
换行保留:用户可能分行写。 */
|
|
echo '<p>' . nl2br(esc_html($copy)) . '</p>';
|
|
echo '<p>THEME <a href="https://git.yangyq.net/laoyang/wordpress-kratos-yang" target="_blank" rel="nofollow">KRATOS YANG</a> Modified BY <a href="https://yangyq.net" target="_blank" rel="nofollow">老杨</a></p>';
|
|
if (kratos_option('s_icp')) {
|
|
echo '<p><a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">' . kratos_option('s_icp') . '</a></p>';
|
|
}
|
|
if (kratos_option('s_gov')) {
|
|
echo '<p><a href="' . kratos_option('s_gov_link', '#') . '" target="_blank" rel="nofollow" ><i class="police-ico"></i>' . kratos_option('s_gov') . '</a></p>';
|
|
}
|
|
if (kratos_option('seo_statistical')) {echo '<p>' . kratos_option('seo_statistical') . '</p>';}
|
|
/* 国旗:勾了「是否添加国旗」才显示。以前 src 直接取选项,
|
|
用户没上传地址就得到 <img src="">,页面上是一个破图图标。
|
|
逻辑抽到 yang_flag_block() 里,测试能直接测同一个函数,
|
|
不必"照着抄一遍"(抄件永远是对的,模板改坏了也发现不了)。 */
|
|
echo yang_flag_block();
|
|
?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php wp_footer(); ?>
|
|
<?php
|
|
/**
|
|
* Prism 代码高亮兜底
|
|
*
|
|
* 主题前台是整页跳转,本不需要这段;但 wp-editormd 插件的 Prism autoloader
|
|
* 依赖 DOMContentLoaded 之后的动态语言包加载,遇到被其它插件延后插入的
|
|
* 代码块就会漏高亮。这里在</body>前再补一次。
|
|
*
|
|
* 语言包路径用 plugins_url() 动态取,不要写死域名:
|
|
* 站点换了域名或加了 CDN,写死的地址会静默 404(表现为代码块不上色)。
|
|
*/
|
|
if (defined('WP_PLUGIN_DIR') && file_exists(WP_PLUGIN_DIR . '/wp-editormd/assets/Prism.js/components/')) {
|
|
$prism_langs = plugins_url('/wp-editormd/assets/Prism.js/components/');
|
|
?>
|
|
<script type="text/javascript">
|
|
if (window.Prism && Prism.plugins && Prism.plugins.autoloader) {
|
|
Prism.plugins.autoloader.languages_path = <?php echo wp_json_encode($prism_langs); ?>;
|
|
}
|
|
if (window.Prism && typeof Prism.highlightAll === 'function') {
|
|
Prism.highlightAll();
|
|
}
|
|
</script>
|
|
<?php
|
|
}
|
|
?>
|
|
</body>
|
|
</html>
|