refactor: 深度代码规范化

- argontheme.js: 将 89 个 var 声明改为 let (保留 3 个全局变量)
- functions.php: 修复 106 处箭头操作符空格问题 (-> 前后不应有空格)
- functions.php: 移除多余空行
This commit is contained in:
2026-01-16 11:25:24 +08:00
parent a5419b0c6e
commit 233edd2441
2 changed files with 185 additions and 188 deletions

View File

@@ -409,7 +409,7 @@ $(document).on("blur" , "#navbar_search_input_container" , function(){
}); });
// 监听输入变化来切换has-text类 // 监听输入变化来切换has-text类
$(document).on("input" , "#navbar_search_input" , function(){ $(document).on("input" , "#navbar_search_input" , function(){
var container = $("#navbar_search_input_container"); let container = $("#navbar_search_input_container");
if ($(this).val().trim() !== "") { if ($(this).val().trim() !== "") {
container.addClass("has-text"); container.addClass("has-text");
} else { } else {
@@ -602,7 +602,7 @@ function waterflowInit() {
let heights = [0, 0, 0]; let heights = [0, 0, 0];
function getMinHeightPosition(){ function getMinHeightPosition(){
let res = 0, minn = 2147483647; let res = 0, minn = 2147483647;
for (var i = 0; i < columns; i++) { for (let i = 0; i < columns; i++) {
if (heights[i] < minn) { if (heights[i] < minn) {
minn = heights[i]; minn = heights[i];
res = i; res = i;
@@ -663,11 +663,11 @@ if (argonConfig.waterflow_columns !== "1") {
/*移动端文章列表布局切换*/ /*移动端文章列表布局切换*/
!function(){ !function(){
var mobileLayout = argonConfig.article_list_layout_mobile || "1"; let mobileLayout = argonConfig.article_list_layout_mobile || "1";
var isMobile = window.innerWidth <= 900; let isMobile = window.innerWidth <= 900;
function applyMobileLayout() { function applyMobileLayout() {
var nowMobile = window.innerWidth <= 900; let nowMobile = window.innerWidth <= 900;
if (nowMobile) { if (nowMobile) {
$("html").addClass("mobile-layout-" + mobileLayout); $("html").addClass("mobile-layout-" + mobileLayout);
} else { } else {
@@ -728,10 +728,10 @@ if (argonConfig.waterflow_columns !== "1") {
$("#fabtn_go_to_comment").addClass("fabtn-hidden"); $("#fabtn_go_to_comment").addClass("fabtn-hidden");
} }
$goToComment.on("click" , function(){ $goToComment.on("click" , function(){
var commentsArea = $("#comments"); let commentsArea = $("#comments");
var postCommentArea = $("#post_comment"); let postCommentArea = $("#post_comment");
var wasCollapsed = commentsArea.hasClass("comments-collapsed"); let wasCollapsed = commentsArea.hasClass("comments-collapsed");
var toggleBtn = $("#comments_toggle"); let toggleBtn = $("#comments_toggle");
if (wasCollapsed && toggleBtn.length > 0) { if (wasCollapsed && toggleBtn.length > 0) {
// 折叠状态:先滚动到评论切换按钮位置,再展开 // 折叠状态:先滚动到评论切换按钮位置,再展开
@@ -1290,7 +1290,7 @@ if (argonConfig.waterflow_columns !== "1") {
}); });
// 准备数据 // 准备数据
var ajaxData = { let ajaxData = {
action: "ajax_post_comment", action: "ajax_post_comment",
comment: commentContent, comment: commentContent,
author: commentName, author: commentName,
@@ -2279,7 +2279,7 @@ if ($("html").hasClass("banner-as-cover")){
} }
/*Pjax*/ /*Pjax*/
var pjaxScrollTop = 0, pjaxLoading = false; let pjaxScrollTop = 0, pjaxLoading = false;
$.pjax.defaults.timeout = 10000; $.pjax.defaults.timeout = 10000;
$.pjax.defaults.container = ['#primary', '#leftbar_part1_menu', '#leftbar_part2_inner', '.page-information-card-container', '#rightbar', '#wpadminbar']; $.pjax.defaults.container = ['#primary', '#leftbar_part1_menu', '#leftbar_part2_inner', '.page-information-card-container', '#rightbar', '#wpadminbar'];
$.pjax.defaults.fragment = ['#primary', '#leftbar_part1_menu', '#leftbar_part2_inner', '.page-information-card-container', '#rightbar', '#wpadminbar']; $.pjax.defaults.fragment = ['#primary', '#leftbar_part1_menu', '#leftbar_part2_inner', '.page-information-card-container', '#rightbar', '#wpadminbar'];
@@ -2448,7 +2448,7 @@ $(document).on("click" , "#blog_categories .tag" , function(){
initMobileCatalog(); initMobileCatalog();
// 如果有文章目录,默认展开 // 如果有文章目录,默认展开
setTimeout(function() { setTimeout(function() {
var catalogSection = $("#mobile_catalog_toggle").closest(".leftbar-mobile-collapse-section"); let catalogSection = $("#mobile_catalog_toggle").closest(".leftbar-mobile-collapse-section");
console.log('[Mobile Sidebar] Catalog section found:', catalogSection.length); console.log('[Mobile Sidebar] Catalog section found:', catalogSection.length);
if (catalogSection.length > 0 && !catalogSection.hasClass("expanded")) { if (catalogSection.length > 0 && !catalogSection.hasClass("expanded")) {
catalogSection.addClass("expanded"); catalogSection.addClass("expanded");
@@ -2489,15 +2489,15 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// ========== 移动端折叠面板交互 ========== // ========== 移动端折叠面板交互 ==========
$(document).on("click", ".leftbar-mobile-collapse-header", function(e) { $(document).on("click", ".leftbar-mobile-collapse-header", function(e) {
var section = $(this).closest(".leftbar-mobile-collapse-section"); let section = $(this).closest(".leftbar-mobile-collapse-section");
var header = $(this); let header = $(this);
var isExpanded = section.hasClass("expanded"); let isExpanded = section.hasClass("expanded");
// 添加点击波纹效果 // 添加点击波纹效果
var ripple = $('<span class="collapse-ripple"></span>'); let ripple = $('<span class="collapse-ripple"></span>');
var rect = this.getBoundingClientRect(); let rect = this.getBoundingClientRect();
var x = e.clientX - rect.left; let x = e.clientX - rect.left;
var y = e.clientY - rect.top; let y = e.clientY - rect.top;
ripple.css({ ripple.css({
left: x + 'px', left: x + 'px',
top: y + 'px' top: y + 'px'
@@ -2523,14 +2523,14 @@ $(document).on("click" , "#blog_categories .tag" , function(){
function initMobileCatalog() { function initMobileCatalog() {
console.log('[Mobile Catalog] initMobileCatalog called, initialized:', window.mobileCatalogInitialized); console.log('[Mobile Catalog] initMobileCatalog called, initialized:', window.mobileCatalogInitialized);
if (window.mobileCatalogInitialized) return; if (window.mobileCatalogInitialized) return;
var $mobileContainer = $("#leftbar_mobile_catalog"); let $mobileContainer = $("#leftbar_mobile_catalog");
var $postContent = $("#post_content"); let $postContent = $("#post_content");
console.log('[Mobile Catalog] Container found:', $mobileContainer.length, 'PostContent found:', $postContent.length); console.log('[Mobile Catalog] Container found:', $mobileContainer.length, 'PostContent found:', $postContent.length);
if ($mobileContainer.length === 0) return; if ($mobileContainer.length === 0) return;
if ($postContent.length === 0) return; if ($postContent.length === 0) return;
// 直接生成目录,不依赖 headIndex 插件 // 直接生成目录,不依赖 headIndex 插件
var $headers = $postContent.find('h1, h2, h3, h4, h5, h6'); let $headers = $postContent.find('h1, h2, h3, h4, h5, h6');
console.log('[Mobile Catalog] Headers found:', $headers.length); console.log('[Mobile Catalog] Headers found:', $headers.length);
if ($headers.length === 0) { if ($headers.length === 0) {
$mobileContainer.html('<div class="no-catalog">暂无目录</div>'); $mobileContainer.html('<div class="no-catalog">暂无目录</div>');
@@ -2538,14 +2538,14 @@ $(document).on("click" , "#blog_categories .tag" , function(){
} }
// 构建目录树 // 构建目录树
var toc = []; let toc = [];
var stack = [{ level: 0, children: toc }]; let stack = [{ level: 0, children: toc }];
$headers.each(function(index) { $headers.each(function(index) {
var $h = $(this); let $h = $(this);
var level = parseInt(this.tagName.charAt(1)); let level = parseInt(this.tagName.charAt(1));
var text = $h.text().trim(); let text = $h.text().trim();
var id = $h.attr('id'); let id = $h.attr('id');
// 确保标题有 ID // 确保标题有 ID
if (!id) { if (!id) {
@@ -2553,7 +2553,7 @@ $(document).on("click" , "#blog_categories .tag" , function(){
$h.attr('id', id); $h.attr('id', id);
} }
var item = { id: id, text: text, level: level, children: [] }; let item = { id: id, text: text, level: level, children: [] };
// 找到合适的父级 // 找到合适的父级
while (stack.length > 1 && stack[stack.length - 1].level >= level) { while (stack.length > 1 && stack[stack.length - 1].level >= level) {
@@ -2566,9 +2566,9 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// 递归生成 HTML // 递归生成 HTML
function buildHtml(items, isRoot) { function buildHtml(items, isRoot) {
if (!items || items.length === 0) return ''; if (!items || items.length === 0) return '';
var html = isRoot ? '<ul>' : '<ul class="index-subItem-box">'; let html = isRoot ? '<ul>' : '<ul class="index-subItem-box">';
for (var i = 0; i < items.length; i++) { for (let i = 0; i < items.length; i++) {
var item = items[i]; let item = items[i];
html += '<li class="index-item">'; html += '<li class="index-item">';
html += '<a href="#' + item.id + '" class="index-link" data-target="' + item.id + '">' + item.text + '</a>'; html += '<a href="#' + item.id + '" class="index-link" data-target="' + item.id + '">' + item.text + '</a>';
if (item.children.length > 0) { if (item.children.length > 0) {
@@ -2587,9 +2587,9 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// 绑定点击事件 // 绑定点击事件
$mobileContainer.off('click.mobileCatalog').on('click.mobileCatalog', '.index-link', function(e) { $mobileContainer.off('click.mobileCatalog').on('click.mobileCatalog', '.index-link', function(e) {
e.preventDefault(); e.preventDefault();
var targetId = $(this).attr('href'); let targetId = $(this).attr('href');
if (targetId) { if (targetId) {
var $target = $(targetId); let $target = $(targetId);
if ($target.length) { if ($target.length) {
$mobileContainer.find('.index-item').removeClass('current'); $mobileContainer.find('.index-item').removeClass('current');
$(this).closest('.index-item').addClass('current'); $(this).closest('.index-item').addClass('current');
@@ -2611,17 +2611,17 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// 更新移动端目录高亮 // 更新移动端目录高亮
function updateMobileCatalogHighlight() { function updateMobileCatalogHighlight() {
var $mobileContainer = $("#leftbar_mobile_catalog"); let $mobileContainer = $("#leftbar_mobile_catalog");
var $postContent = $("#post_content"); let $postContent = $("#post_content");
if ($mobileContainer.length === 0 || $postContent.length === 0) return; if ($mobileContainer.length === 0 || $postContent.length === 0) return;
var scrollTop = $(window).scrollTop(); let scrollTop = $(window).scrollTop();
var $headers = $postContent.find('h1, h2, h3, h4, h5, h6'); let $headers = $postContent.find('h1, h2, h3, h4, h5, h6');
var currentId = null; let currentId = null;
$headers.each(function() { $headers.each(function() {
var $h = $(this); let $h = $(this);
var top = $h.offset().top - 100; let top = $h.offset().top - 100;
if (scrollTop >= top) { if (scrollTop >= top) {
currentId = $h.attr('id'); currentId = $h.attr('id');
} }
@@ -2641,14 +2641,14 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// 滚动目录到当前激活项 // 滚动目录到当前激活项
function scrollMobileCatalogToActive() { function scrollMobileCatalogToActive() {
var container = $("#leftbar_mobile_catalog"); let container = $("#leftbar_mobile_catalog");
var activeItem = container.find(".index-item.current"); let activeItem = container.find(".index-item.current");
if (activeItem.length > 0 && container.length > 0) { if (activeItem.length > 0 && container.length > 0) {
var containerHeight = container.height(); let containerHeight = container.height();
var itemTop = activeItem.position().top; let itemTop = activeItem.position().top;
var itemHeight = activeItem.outerHeight(); let itemHeight = activeItem.outerHeight();
var scrollTop = container.scrollTop(); let scrollTop = container.scrollTop();
var targetScroll = scrollTop + itemTop - (containerHeight / 2) + (itemHeight / 2); let targetScroll = scrollTop + itemTop - (containerHeight / 2) + (itemHeight / 2);
container.stop().animate({ container.stop().animate({
scrollTop: Math.max(0, targetScroll) scrollTop: Math.max(0, targetScroll)
}, 300, 'easeOutCubic'); }, 300, 'easeOutCubic');
@@ -2656,7 +2656,7 @@ $(document).on("click" , "#blog_categories .tag" , function(){
} }
// 监听页面滚动,实时更新移动端目录高亮并自动滚动 // 监听页面滚动,实时更新移动端目录高亮并自动滚动
var mobileCatalogScrollTimer = null; let mobileCatalogScrollTimer = null;
$(window).on("scroll.mobileCatalog", function() { $(window).on("scroll.mobileCatalog", function() {
if (!window.mobileCatalogInitialized) return; if (!window.mobileCatalogInitialized) return;
// 节流处理 // 节流处理
@@ -2677,7 +2677,7 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// ========== 移动端TODO交互 ========== // ========== 移动端TODO交互 ==========
function updateMobileTodoCount() { function updateMobileTodoCount() {
var count = $("#mobile-todo-list .mobile-todo-item:not(.todo-completed)").length; let count = $("#mobile-todo-list .mobile-todo-item:not(.todo-completed)").length;
$("#mobile_todo_count").text(count); $("#mobile_todo_count").text(count);
// 同步更新桌面端计数 // 同步更新桌面端计数
$(".todo-count").text(count); $(".todo-count").text(count);
@@ -2697,11 +2697,11 @@ $(document).on("click" , "#blog_categories .tag" , function(){
function addMobileTodo() { function addMobileTodo() {
if (!window.mobileTodoConfig) return; if (!window.mobileTodoConfig) return;
var input = $("#mobile-todo-input"); let input = $("#mobile-todo-input");
var content = input.val().trim(); let content = input.val().trim();
if (!content) return; if (!content) return;
var btn = $("#mobile-todo-add-btn"); let btn = $("#mobile-todo-add-btn");
btn.prop("disabled", true); btn.prop("disabled", true);
$.ajax({ $.ajax({
@@ -2714,10 +2714,10 @@ $(document).on("click" , "#blog_categories .tag" , function(){
}, },
success: function(res) { success: function(res) {
if (res.success) { if (res.success) {
var list = $("#mobile-todo-list"); let list = $("#mobile-todo-list");
list.find(".mobile-todo-empty").remove(); list.find(".mobile-todo-empty").remove();
var newItem = $('<li class="mobile-todo-item" data-id="' + res.data.id + '">' + let newItem = $('<li class="mobile-todo-item" data-id="' + res.data.id + '">' +
'<span class="mobile-todo-content">' + $("<div>").text(content).html() + '</span>' + '<span class="mobile-todo-content">' + $("<div>").text(content).html() + '</span>' +
'<button class="mobile-todo-complete-btn" title="完成"><i class="fa fa-check"></i></button>' + '<button class="mobile-todo-complete-btn" title="完成"><i class="fa fa-check"></i></button>' +
'</li>'); '</li>');
@@ -2738,16 +2738,16 @@ $(document).on("click" , "#blog_categories .tag" , function(){
} }
// 移动端 TODO 验证码相关变量 // 移动端 TODO 验证码相关变量
var mobilePendingUrgeBtn = null; let mobilePendingUrgeBtn = null;
var mobileGeetestCaptchaObj = null; let mobileGeetestCaptchaObj = null;
// 完成/删除/催促TODO // 完成/删除/催促TODO
$(document).on("click", "#mobile-todo-list .mobile-todo-complete-btn, #mobile-todo-list .mobile-todo-delete-btn, #mobile-todo-list .mobile-todo-urge-btn", function() { $(document).on("click", "#mobile-todo-list .mobile-todo-complete-btn, #mobile-todo-list .mobile-todo-delete-btn, #mobile-todo-list .mobile-todo-urge-btn", function() {
if (!window.mobileTodoConfig) return; if (!window.mobileTodoConfig) return;
var btn = $(this); let btn = $(this);
var item = btn.closest(".mobile-todo-item"); let item = btn.closest(".mobile-todo-item");
var id = item.data("id"); let id = item.data("id");
if (btn.hasClass("mobile-todo-complete-btn")) { if (btn.hasClass("mobile-todo-complete-btn")) {
btn.prop("disabled", true); btn.prop("disabled", true);
@@ -2797,7 +2797,7 @@ $(document).on("click" , "#blog_categories .tag" , function(){
} else if (btn.hasClass("mobile-todo-urge-btn") && !btn.hasClass("urged")) { } else if (btn.hasClass("mobile-todo-urge-btn") && !btn.hasClass("urged")) {
// 检查是否需要验证码 // 检查是否需要验证码
if (window.mobileTodoConfig.needCaptcha) { if (window.mobileTodoConfig.needCaptcha) {
var captchaContainer = $(".mobile-todo-captcha-container"); let captchaContainer = $(".mobile-todo-captcha-container");
if (captchaContainer.length > 0) { if (captchaContainer.length > 0) {
captchaContainer.slideDown(200); captchaContainer.slideDown(200);
mobilePendingUrgeBtn = btn; mobilePendingUrgeBtn = btn;
@@ -2813,9 +2813,9 @@ $(document).on("click" , "#blog_categories .tag" , function(){
captcha.onReady(function() { captcha.onReady(function() {
captcha.showCaptcha(); captcha.showCaptcha();
}).onSuccess(function() { }).onSuccess(function() {
var result = captcha.getValidate(); let result = captcha.getValidate();
if (result && mobilePendingUrgeBtn) { if (result && mobilePendingUrgeBtn) {
var urgeId = mobilePendingUrgeBtn.closest(".mobile-todo-item").data("id"); let urgeId = mobilePendingUrgeBtn.closest(".mobile-todo-item").data("id");
doMobileUrgeGeetest(mobilePendingUrgeBtn, urgeId, result); doMobileUrgeGeetest(mobilePendingUrgeBtn, urgeId, result);
} }
}).onError(function() { }).onError(function() {
@@ -2843,15 +2843,15 @@ $(document).on("click" , "#blog_categories .tag" , function(){
$(document).on("click", "#mobile-todo-captcha-submit", function() { $(document).on("click", "#mobile-todo-captcha-submit", function() {
if (!mobilePendingUrgeBtn) return; if (!mobilePendingUrgeBtn) return;
var captchaInput = $("#mobile-todo-captcha-input"); let captchaInput = $("#mobile-todo-captcha-input");
var captchaValue = captchaInput.val().trim(); let captchaValue = captchaInput.val().trim();
if (!captchaValue) { if (!captchaValue) {
captchaInput.focus(); captchaInput.focus();
return; return;
} }
var id = mobilePendingUrgeBtn.closest(".mobile-todo-item").data("id"); let id = mobilePendingUrgeBtn.closest(".mobile-todo-item").data("id");
doMobileUrge(mobilePendingUrgeBtn, id, captchaValue); doMobileUrge(mobilePendingUrgeBtn, id, captchaValue);
}); });
@@ -2912,7 +2912,7 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// 处理移动端催促响应 // 处理移动端催促响应
function handleMobileUrgeResponse(btn, res) { function handleMobileUrgeResponse(btn, res) {
var captchaContainer = $(".mobile-todo-captcha-container"); let captchaContainer = $(".mobile-todo-captcha-container");
if (res.success) { if (res.success) {
btn.addClass("urged").html('<i class="fa fa-check"></i>'); btn.addClass("urged").html('<i class="fa fa-check"></i>');
@@ -2925,7 +2925,7 @@ $(document).on("click" , "#blog_categories .tag" , function(){
} }
// 同步到桌面端 // 同步到桌面端
var id = btn.closest(".mobile-todo-item").data("id"); let id = btn.closest(".mobile-todo-item").data("id");
syncTodoToDesktop(id, "", "urge"); syncTodoToDesktop(id, "", "urge");
// 显示成功提示 // 显示成功提示
@@ -2960,24 +2960,24 @@ $(document).on("click" , "#blog_categories .tag" , function(){
// 同步TODO操作到桌面端 // 同步TODO操作到桌面端
function syncTodoToDesktop(id, content, action) { function syncTodoToDesktop(id, content, action) {
var desktopList = $("#todo-list"); let desktopList = $("#todo-list");
if (desktopList.length === 0) return; if (desktopList.length === 0) return;
if (action === "add") { if (action === "add") {
desktopList.find(".todo-empty").remove(); desktopList.find(".todo-empty").remove();
var newItem = $('<li class="todo-item" data-id="' + id + '">' + let newItem = $('<li class="todo-item" data-id="' + id + '">' +
'<span class="todo-content">' + $("<div>").text(content).html() + '</span>' + '<span class="todo-content">' + $("<div>").text(content).html() + '</span>' +
'<button class="todo-complete-btn" title="完成"><i class="fa fa-check"></i></button>' + '<button class="todo-complete-btn" title="完成"><i class="fa fa-check"></i></button>' +
'</li>'); '</li>');
desktopList.prepend(newItem); desktopList.prepend(newItem);
} else if (action === "complete") { } else if (action === "complete") {
var item = desktopList.find('.todo-item[data-id="' + id + '"]'); let item = desktopList.find('.todo-item[data-id="' + id + '"]');
item.addClass("todo-completed"); item.addClass("todo-completed");
item.find(".todo-complete-btn").replaceWith('<button class="todo-delete-btn" title="删除"><i class="fa fa-trash"></i></button>'); item.find(".todo-complete-btn").replaceWith('<button class="todo-delete-btn" title="删除"><i class="fa fa-trash"></i></button>');
} else if (action === "delete") { } else if (action === "delete") {
desktopList.find('.todo-item[data-id="' + id + '"]').remove(); desktopList.find('.todo-item[data-id="' + id + '"]').remove();
} else if (action === "urge") { } else if (action === "urge") {
var urgeBtn = desktopList.find('.todo-item[data-id="' + id + '"] .todo-urge-btn'); let urgeBtn = desktopList.find('.todo-item[data-id="' + id + '"] .todo-urge-btn');
urgeBtn.addClass("urged").prop("disabled", true).html('<i class="fa fa-check"></i>'); urgeBtn.addClass("urged").prop("disabled", true).html('<i class="fa fa-check"></i>');
} }
} }
@@ -3397,7 +3397,7 @@ function randomString(len) {
res[0] = chars.charAt(Math.floor(Math.random() * (chars.length - 10))); res[0] = chars.charAt(Math.floor(Math.random() * (chars.length - 10)));
return res; return res;
} }
var codeOfBlocks = {}; let codeOfBlocks = {};
function getCodeFromBlock(block){ function getCodeFromBlock(block){
if (codeOfBlocks[block.id] !== undefined){ if (codeOfBlocks[block.id] !== undefined){
return codeOfBlocks[block.id]; return codeOfBlocks[block.id];
@@ -3522,7 +3522,7 @@ $(document).on("click" , ".hljs-control-toggle-linenumber" , function(){
/*时间差计算*/ /*时间差计算*/
function addPreZero(num, n) { function addPreZero(num, n) {
var len = num.toString().length; let len = num.toString().length;
while(len < n) { while(len < n) {
num = "0" + num; num = "0" + num;
len++; len++;
@@ -3608,14 +3608,14 @@ void 0;
// 1. 触摸涟漪效果 // 1. 触摸涟漪效果
function createRipple(event, element) { function createRipple(event, element) {
if (window.matchMedia('(hover: hover)').matches) return; if (window.matchMedia('(hover: hover)').matches) return;
var rect = element.getBoundingClientRect(); let rect = element.getBoundingClientRect();
var ripple = document.createElement('span'); let ripple = document.createElement('span');
var size = Math.max(rect.width, rect.height); let size = Math.max(rect.width, rect.height);
ripple.style.width = ripple.style.height = size + 'px'; ripple.style.width = ripple.style.height = size + 'px';
ripple.style.left = ((event.clientX || event.touches[0].clientX) - rect.left - size / 2) + 'px'; ripple.style.left = ((event.clientX || event.touches[0].clientX) - rect.left - size / 2) + 'px';
ripple.style.top = ((event.clientY || event.touches[0].clientY) - rect.top - size / 2) + 'px'; ripple.style.top = ((event.clientY || event.touches[0].clientY) - rect.top - size / 2) + 'px';
ripple.className = 'touch-ripple'; ripple.className = 'touch-ripple';
var oldRipple = element.querySelector('.touch-ripple'); let oldRipple = element.querySelector('.touch-ripple');
if (oldRipple) oldRipple.remove(); if (oldRipple) oldRipple.remove();
element.style.position = 'relative'; element.style.position = 'relative';
element.style.overflow = 'hidden'; element.style.overflow = 'hidden';
@@ -3624,7 +3624,7 @@ void 0;
} }
function initRippleEffect() { function initRippleEffect() {
var rippleElements = document.querySelectorAll('.btn, .card, .nav-link, .dropdown-item, .page-link, .leftbar-mobile-menu-item > a, .leftbar-mobile-action, .fabtn, .comment-reply, .tag, .badge'); let rippleElements = document.querySelectorAll('.btn, .card, .nav-link, .dropdown-item, .page-link, .leftbar-mobile-menu-item > a, .leftbar-mobile-action, .fabtn, .comment-reply, .tag, .badge');
rippleElements.forEach(function(el) { rippleElements.forEach(function(el) {
if (el.dataset.rippleInit) return; if (el.dataset.rippleInit) return;
el.dataset.rippleInit = 'true'; el.dataset.rippleInit = 'true';
@@ -3634,7 +3634,7 @@ void 0;
// 2. 图片加载动画 // 2. 图片加载动画
function initImageLoadAnimation() { function initImageLoadAnimation() {
var images = document.querySelectorAll('article img[loading="lazy"], .post-thumbnail img'); let images = document.querySelectorAll('article img[loading="lazy"], .post-thumbnail img');
images.forEach(function(img) { images.forEach(function(img) {
if (img.dataset.loadAnimInit) return; if (img.dataset.loadAnimInit) return;
img.dataset.loadAnimInit = 'true'; img.dataset.loadAnimInit = 'true';
@@ -3646,8 +3646,8 @@ void 0;
// 3. 滚动入场动画 // 3. 滚动入场动画
function initScrollAnimations() { function initScrollAnimations() {
if (!('IntersectionObserver' in window)) return; if (!('IntersectionObserver' in window)) return;
var animatedElements = document.querySelectorAll('.article-list article.post, .comment-item, .timeline-item, .friend-link-item, #leftbar .card, #rightbar .card'); let animatedElements = document.querySelectorAll('.article-list article.post, .comment-item, .timeline-item, .friend-link-item, #leftbar .card, #rightbar .card');
var observer = new IntersectionObserver(function(entries) { let observer = new IntersectionObserver(function(entries) {
entries.forEach(function(entry) { entries.forEach(function(entry) {
if (entry.isIntersecting) { entry.target.classList.add('animate-in'); observer.unobserve(entry.target); } if (entry.isIntersecting) { entry.target.classList.add('animate-in'); observer.unobserve(entry.target); }
}); });
@@ -3661,9 +3661,9 @@ void 0;
if (anchor.dataset.smoothScrollInit) return; if (anchor.dataset.smoothScrollInit) return;
anchor.dataset.smoothScrollInit = 'true'; anchor.dataset.smoothScrollInit = 'true';
anchor.addEventListener('click', function(e) { anchor.addEventListener('click', function(e) {
var targetId = this.getAttribute('href'); let targetId = this.getAttribute('href');
if (targetId === '#') return; if (targetId === '#') return;
var target = document.querySelector(targetId); let target = document.querySelector(targetId);
if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } if (target) { e.preventDefault(); target.scrollIntoView({ behavior: 'smooth', block: 'start' }); }
}); });
}); });
@@ -3672,12 +3672,12 @@ void 0;
// 5. 页面加载进度条 // 5. 页面加载进度条
function initLoadingBar() { function initLoadingBar() {
if (document.getElementById('page-loading-bar')) return; if (document.getElementById('page-loading-bar')) return;
var bar = document.createElement('div'); let bar = document.createElement('div');
bar.id = 'page-loading-bar'; bar.id = 'page-loading-bar';
bar.style.width = '0%'; bar.style.width = '0%';
document.body.appendChild(bar); document.body.appendChild(bar);
var progress = 0; let progress = 0;
var interval = setInterval(function() { let interval = setInterval(function() {
progress += Math.random() * 10; progress += Math.random() * 10;
if (progress >= 90) { clearInterval(interval); progress = 90; } if (progress >= 90) { clearInterval(interval); progress = 90; }
bar.style.width = progress + '%'; bar.style.width = progress + '%';
@@ -3694,14 +3694,14 @@ void 0;
if (typeof jQuery === 'undefined') return; if (typeof jQuery === 'undefined') return;
jQuery(document).on('pjax:start', function() { jQuery(document).on('pjax:start', function() {
jQuery('#primary').addClass('pjax-loading'); jQuery('#primary').addClass('pjax-loading');
var bar = document.getElementById('page-loading-bar'); let bar = document.getElementById('page-loading-bar');
if (!bar) { bar = document.createElement('div'); bar.id = 'page-loading-bar'; document.body.appendChild(bar); } if (!bar) { bar = document.createElement('div'); bar.id = 'page-loading-bar'; document.body.appendChild(bar); }
bar.style.opacity = '1'; bar.style.width = '30%'; bar.style.opacity = '1'; bar.style.width = '30%';
setTimeout(function() { bar.style.width = '60%'; }, 200); setTimeout(function() { bar.style.width = '60%'; }, 200);
}); });
jQuery(document).on('pjax:end', function() { jQuery(document).on('pjax:end', function() {
jQuery('#primary').removeClass('pjax-loading'); jQuery('#primary').removeClass('pjax-loading');
var bar = document.getElementById('page-loading-bar'); let bar = document.getElementById('page-loading-bar');
if (bar) { bar.style.width = '100%'; setTimeout(function() { bar.style.opacity = '0'; setTimeout(function() { bar.remove(); }, 300); }, 200); } if (bar) { bar.style.width = '100%'; setTimeout(function() { bar.style.opacity = '0'; setTimeout(function() { bar.remove(); }, 300); }, 200); }
setTimeout(function() { initRippleEffect(); initImageLoadAnimation(); initScrollAnimations(); initSmoothScroll(); }, 100); setTimeout(function() { initRippleEffect(); initImageLoadAnimation(); initScrollAnimations(); initSmoothScroll(); }, 100);
}); });

View File

@@ -29,7 +29,7 @@ function theme_slug_setup() {
} }
add_action('after_setup_theme','theme_slug_setup'); add_action('after_setup_theme','theme_slug_setup');
$argon_version = !(wp_get_theme() -> Template) ? wp_get_theme() -> Version : wp_get_theme(wp_get_theme() -> Template) -> Version; $argon_version = !(wp_get_theme()->Template) ? wp_get_theme()->Version : wp_get_theme(wp_get_theme()->Template)->Version;
$GLOBALS['theme_version'] = $argon_version; $GLOBALS['theme_version'] = $argon_version;
// 强制使用本地资源,避免 CDN 加载问题 // 强制使用本地资源,避免 CDN 加载问题
@@ -219,7 +219,6 @@ if (version_compare($argon_last_version, $GLOBALS['theme_version'], '<' )){
update_option("argon_last_version", $GLOBALS['theme_version']); update_option("argon_last_version", $GLOBALS['theme_version']);
} }
//引入邮件模板系统 //引入邮件模板系统
require_once(get_template_directory() . '/email-templates/base.php'); require_once(get_template_directory() . '/email-templates/base.php');
require_once(get_template_directory() . '/email-templates/comment-notify.php'); require_once(get_template_directory() . '/email-templates/comment-notify.php');
@@ -961,7 +960,7 @@ function argon_get_first_image_of_article(){
if (post_password_required()){ if (post_password_required()){
return false; return false;
} }
$post_content_full = apply_filters('the_content', preg_replace( '<!--more(.*?)-->', '', $post -> post_content)); $post_content_full = apply_filters('the_content', preg_replace( '<!--more(.*?)-->', '', $post->post_content));
preg_match('/<img(.*?)(src|data-original)=[\"\']((http:|https:)?\/\/(.*?))[\"\'](.*?)\/?>/', $post_content_full, $match); preg_match('/<img(.*?)(src|data-original)=[\"\']((http:|https:)?\/\/(.*?))[\"\'](.*?)\/?>/', $post_content_full, $match);
if (isset($match[3])){ if (isset($match[3])){
return $match[3]; return $match[3];
@@ -971,7 +970,7 @@ function argon_get_first_image_of_article(){
function argon_has_post_thumbnail($postID = 0){ function argon_has_post_thumbnail($postID = 0){
if ($postID == 0){ if ($postID == 0){
global $post; global $post;
$postID = $post -> ID; $postID = $post->ID;
} }
if (has_post_thumbnail()){ if (has_post_thumbnail()){
return true; return true;
@@ -990,7 +989,7 @@ function argon_has_post_thumbnail($postID = 0){
function argon_get_post_thumbnail($postID = 0){ function argon_get_post_thumbnail($postID = 0){
if ($postID == 0){ if ($postID == 0){
global $post; global $post;
$postID = $post -> ID; $postID = $post->ID;
} }
if (has_post_thumbnail()){ if (has_post_thumbnail()){
return apply_filters("argon_post_thumbnail", wp_get_attachment_image_src(get_post_thumbnail_id($postID), "full")[0]); return apply_filters("argon_post_thumbnail", wp_get_attachment_image_src(get_post_thumbnail_id($postID), "full")[0]);
@@ -1000,8 +999,8 @@ function argon_get_post_thumbnail($postID = 0){
//文末附加内容 //文末附加内容
function get_additional_content_after_post(){ function get_additional_content_after_post(){
global $post; global $post;
$postID = $post -> ID; $postID = $post->ID;
$res = get_post_meta($post -> ID, 'argon_after_post', true); $res = get_post_meta($post->ID, 'argon_after_post', true);
if ($res == "--none--"){ if ($res == "--none--"){
return ""; return "";
} }
@@ -1134,7 +1133,7 @@ function get_seo_description(){
return preg_replace('/ \[&hellip;]$/', '&hellip;', get_the_excerpt()); return preg_replace('/ \[&hellip;]$/', '&hellip;', get_the_excerpt());
} }
if (!post_password_required()){ if (!post_password_required()){
return htmlspecialchars(mb_substr(str_replace("\n", '', strip_tags($post -> post_content)), 0, 50)) . "..."; return htmlspecialchars(mb_substr(str_replace("\n", '', strip_tags($post->post_content)), 0, 50)) . "...";
}else{ }else{
return __("这是一个加密页面,需要密码来查看", 'argon'); return __("这是一个加密页面,需要密码来查看", 'argon');
} }
@@ -1146,14 +1145,14 @@ function get_seo_description(){
function get_seo_keywords(){ function get_seo_keywords(){
if (is_single()){ if (is_single()){
global $post; global $post;
$tags = get_the_tags('', ',', '', $post -> ID); $tags = get_the_tags('', ',', '', $post->ID);
if ($tags != null){ if ($tags != null){
$res = ""; $res = "";
foreach ($tags as $tag){ foreach ($tags as $tag){
if ($res != ""){ if ($res != ""){
$res .= ","; $res .= ",";
} }
$res .= $tag -> name; $res .= $tag->name;
} }
return $res; return $res;
} }
@@ -1178,7 +1177,7 @@ function get_seo_keywords(){
//页面分享预览图 //页面分享预览图
function get_og_image(){ function get_og_image(){
global $post; global $post;
$postID = $post -> ID; $postID = $post->ID;
$argon_first_image_as_thumbnail = get_post_meta($postID, 'argon_first_image_as_thumbnail', 'true'); $argon_first_image_as_thumbnail = get_post_meta($postID, 'argon_first_image_as_thumbnail', 'true');
if (has_post_thumbnail() || $argon_first_image_as_thumbnail == 'true'){ if (has_post_thumbnail() || $argon_first_image_as_thumbnail == 'true'){
return argon_get_post_thumbnail($postID); return argon_get_post_thumbnail($postID);
@@ -1202,7 +1201,7 @@ function set_post_views(){
} }
if (!isset($post_id)){ if (!isset($post_id)){
global $post; global $post;
$post_id = $post -> ID; $post_id = $post->ID;
} }
if (post_password_required($post_id)){ if (post_password_required($post_id)){
return; return;
@@ -1222,10 +1221,10 @@ function set_post_views(){
return; return;
} }
global $post; global $post;
if (!isset($post -> ID)){ if (!isset($post->ID)){
return; return;
} }
$post_id = $post -> ID; $post_id = $post->ID;
$count_key = 'views'; $count_key = 'views';
$count = get_post_meta($post_id, $count_key, true); $count = get_post_meta($post_id, $count_key, true);
if (is_single() || is_page()) { if (is_single() || is_page()) {
@@ -1316,7 +1315,7 @@ function have_catalog(){
if (is_page() && is_page_template('timeline.php')){ if (is_page() && is_page_template('timeline.php')){
return true; return true;
} }
$content = get_post(get_the_ID()) -> post_content; $content = get_post(get_the_ID())->post_content;
// 检查 HTML 标题标签 // 检查 HTML 标题标签
if (preg_match('/<h[1-6](.*?)>/i', $content)){ if (preg_match('/<h[1-6](.*?)>/i', $content)){
return true; return true;
@@ -1375,7 +1374,7 @@ function get_article_meta($type){
if ($type == 'comments'){ if ($type == 'comments'){
return '<div class="post-meta-detail post-meta-detail-comments"> return '<div class="post-meta-detail post-meta-detail-comments">
<i class="fa fa-comments-o" aria-hidden="true"></i> ' . <i class="fa fa-comments-o" aria-hidden="true"></i> ' .
get_post(get_the_ID()) -> comment_count . get_post(get_the_ID())->comment_count .
'</div>'; '</div>';
} }
if ($type == 'categories'){ if ($type == 'categories'){
@@ -1383,7 +1382,7 @@ function get_article_meta($type){
<i class="fa fa-bookmark-o" aria-hidden="true"></i> '; <i class="fa fa-bookmark-o" aria-hidden="true"></i> ';
$categories = get_the_category(); $categories = get_the_category();
foreach ($categories as $index => $category){ foreach ($categories as $index => $category){
$res .= '<a href="' . get_category_link($category -> term_id) . '" target="_blank" class="post-meta-detail-catagory-link">' . $category -> cat_name . '</a>'; $res .= '<a href="' . get_category_link($category->term_id) . '" target="_blank" class="post-meta-detail-catagory-link">' . $category->cat_name . '</a>';
if ($index != count($categories) - 1){ if ($index != count($categories) - 1){
$res .= '<span class="post-meta-detail-catagory-space">,</span>'; $res .= '<span class="post-meta-detail-catagory-space">,</span>';
} }
@@ -1395,7 +1394,7 @@ function get_article_meta($type){
$res = '<div class="post-meta-detail post-meta-detail-author"> $res = '<div class="post-meta-detail post-meta-detail-author">
<i class="fa fa-user-circle-o" aria-hidden="true"></i> '; <i class="fa fa-user-circle-o" aria-hidden="true"></i> ';
global $authordata; global $authordata;
$res .= '<a href="' . get_author_posts_url($authordata -> ID, $authordata -> user_nicename) . '" target="_blank">' . get_the_author() . '</a> $res .= '<a href="' . get_author_posts_url($authordata->ID, $authordata->user_nicename) . '" target="_blank">' . get_the_author() . '</a>
</div>'; </div>';
return $res; return $res;
} }
@@ -1428,7 +1427,7 @@ function is_readingtime_meta_hidden(){
return true; return true;
} }
global $post; global $post;
if (get_post_meta($post -> ID, 'argon_hide_readingtime', true) == 'true'){ if (get_post_meta($post->ID, 'argon_hide_readingtime', true) == 'true'){
return true; return true;
} }
return false; return false;
@@ -1436,14 +1435,14 @@ function is_readingtime_meta_hidden(){
//当前文章是否隐藏 发布时间和分类 (简洁 Meta) //当前文章是否隐藏 发布时间和分类 (简洁 Meta)
function is_meta_simple(){ function is_meta_simple(){
global $post; global $post;
if (get_post_meta($post -> ID, 'argon_meta_simple', true) == 'true'){ if (get_post_meta($post->ID, 'argon_meta_simple', true) == 'true'){
return true; return true;
} }
return false; return false;
} }
//根据文章 id 获取标题 //根据文章 id 获取标题
function get_post_title_by_id($id){ function get_post_title_by_id($id){
return get_post($id) -> post_title; return get_post($id)->post_title;
} }
//解析 UA 和相应图标 //解析 UA 和相应图标
require_once(get_template_directory() . '/useragent-parser.php'); require_once(get_template_directory() . '/useragent-parser.php');
@@ -1510,14 +1509,14 @@ function check_login_user_same($userid){
if ($userid == 0){ if ($userid == 0){
return false; return false;
} }
if ($userid != (wp_get_current_user() -> ID)){ if ($userid != (wp_get_current_user()->ID)){
return false; return false;
} }
return true; return true;
} }
function get_comment_user_id_by_id($comment_ID){ function get_comment_user_id_by_id($comment_ID){
$comment = get_comment($comment_ID); $comment = get_comment($comment_ID);
return $comment -> user_id; return $comment->user_id;
} }
function check_comment_userid($id){ function check_comment_userid($id){
if (!check_login_user_same(get_comment_user_id_by_id($id))){ if (!check_login_user_same(get_comment_user_id_by_id($id))){
@@ -1547,7 +1546,7 @@ function user_can_view_comment($id){
//过滤 RSS 中悄悄话 //过滤 RSS 中悄悄话
function remove_rss_private_comment_title_and_author($str){ function remove_rss_private_comment_title_and_author($str){
global $comment; global $comment;
if (isset($comment -> comment_ID) && is_comment_private_mode($comment -> comment_ID)){ if (isset($comment->comment_ID) && is_comment_private_mode($comment->comment_ID)){
return "***"; return "***";
} }
return $str; return $str;
@@ -1556,9 +1555,9 @@ add_filter('the_title_rss' , 'remove_rss_private_comment_title_and_author');
add_filter('comment_author_rss' , 'remove_rss_private_comment_title_and_author'); add_filter('comment_author_rss' , 'remove_rss_private_comment_title_and_author');
function remove_rss_private_comment_content($str){ function remove_rss_private_comment_content($str){
global $comment; global $comment;
if (is_comment_private_mode($comment -> comment_ID)){ if (is_comment_private_mode($comment->comment_ID)){
$comment -> comment_content = __('该评论为悄悄话', 'argon'); $comment->comment_content = __('该评论为悄悄话', 'argon');
return $comment -> comment_content; return $comment->comment_content;
} }
return $str; return $str;
} }
@@ -1568,11 +1567,11 @@ function get_comment_parent_info($comment){
if (!$GLOBALS['argon_comment_options']['show_comment_parent_info']){ if (!$GLOBALS['argon_comment_options']['show_comment_parent_info']){
return ""; return "";
} }
if ($comment -> comment_parent == 0){ if ($comment->comment_parent == 0){
return ""; return "";
} }
$parent_comment = get_comment($comment -> comment_parent); $parent_comment = get_comment($comment->comment_parent);
return '<div class="comment-parent-info" data-parent-id=' . $parent_comment -> comment_ID . '><i class="fa fa-reply" aria-hidden="true"></i> ' . get_comment_author($parent_comment -> comment_ID) . '</div>'; return '<div class="comment-parent-info" data-parent-id=' . $parent_comment->comment_ID . '><i class="fa fa-reply" aria-hidden="true"></i> ' . get_comment_author($parent_comment->comment_ID) . '</div>';
} }
//是否可以查看评论编辑记录 //是否可以查看评论编辑记录
function can_visit_comment_edit_history($id){ function can_visit_comment_edit_history($id){
@@ -1618,10 +1617,10 @@ function get_comment_edit_history(){
<div class='comment-edit-history-id'> <div class='comment-edit-history-id'>
#" . $position . " #" . $position . "
</div> </div>
" . ($edition -> isfirst ? "<span class='badge badge-primary badge-admin'>" . __("最初版本", 'argon') . "</span>" : "") . " " . ($edition->isfirst ? "<span class='badge badge-primary badge-admin'>" . __("最初版本", 'argon') . "</span>" : "") . "
</div> </div>
<div class='comment-edit-history-time'>" . date('Y-m-d H:i:s', $edition -> time) . "</div> <div class='comment-edit-history-time'>" . date('Y-m-d H:i:s', $edition->time) . "</div>
<div class='comment-edit-history-content'>" . str_replace("\n", "</br>", $edition -> content) . "</div> <div class='comment-edit-history-content'>" . str_replace("\n", "</br>", $edition->content) . "</div>
</div>"; </div>";
} }
exit(json_encode(array( exit(json_encode(array(
@@ -1633,10 +1632,10 @@ add_action('wp_ajax_get_comment_edit_history', 'get_comment_edit_history');
add_action('wp_ajax_nopriv_get_comment_edit_history', 'get_comment_edit_history'); add_action('wp_ajax_nopriv_get_comment_edit_history', 'get_comment_edit_history');
//是否可以置顶/取消置顶 //是否可以置顶/取消置顶
function is_comment_pinable($id){ function is_comment_pinable($id){
if (get_comment($id) -> comment_approved != "1"){ if (get_comment($id)->comment_approved != "1"){
return false; return false;
} }
if (get_comment($id) -> comment_parent != 0){ if (get_comment($id)->comment_parent != 0){
return false; return false;
} }
if (is_comment_private_mode($id)){ if (is_comment_private_mode($id)){
@@ -1660,7 +1659,7 @@ function argon_get_comment_text($comment_ID = 0, $args = array()) {
); );
$comment_text = preg_replace( $comment_text = preg_replace(
'/<img src="(.*?)" alt="(.*?)" \/>/', '/<img src="(.*?)" alt="(.*?)" \/>/',
'<a href="$1" title="$2" data-fancybox="comment-' . $comment -> comment_ID . '-image" class="comment-image" rel="nofollow"> '<a href="$1" title="$2" data-fancybox="comment-' . $comment->comment_ID . '-image" class="comment-image" rel="nofollow">
<i class="fa fa-image" aria-hidden="true"></i> <i class="fa fa-image" aria-hidden="true"></i>
' . __('查看图片', 'argon') . ' ' . __('查看图片', 'argon') . '
<img src="" alt="$2" class="comment-image-preview"> <img src="" alt="$2" class="comment-image-preview">
@@ -1695,7 +1694,7 @@ function get_comment_upvotes($id) {
if ($comment == null){ if ($comment == null){
return 0; return 0;
} }
$upvotes = get_comment_meta($comment -> comment_ID, "upvotes", true); $upvotes = get_comment_meta($comment->comment_ID, "upvotes", true);
if ($upvotes == null) { if ($upvotes == null) {
$upvotes = 0; $upvotes = 0;
} }
@@ -1706,12 +1705,12 @@ function set_comment_upvotes($id){
if ($comment == null){ if ($comment == null){
return 0; return 0;
} }
$upvotes = get_comment_meta($comment -> comment_ID, "upvotes", true); $upvotes = get_comment_meta($comment->comment_ID, "upvotes", true);
if ($upvotes == null) { if ($upvotes == null) {
$upvotes = 0; $upvotes = 0;
} }
$upvotes++; $upvotes++;
update_comment_meta($comment -> comment_ID, "upvotes", $upvotes); update_comment_meta($comment->comment_ID, "upvotes", $upvotes);
return $upvotes; return $upvotes;
} }
function is_comment_upvoted($id){ function is_comment_upvoted($id){
@@ -1768,7 +1767,7 @@ $GLOBALS['argon_comment_options']['show_comment_parent_info'] = (get_option("arg
function argon_comment_format($comment, $args, $depth){ function argon_comment_format($comment, $args, $depth){
global $comment_enable_upvote, $comment_enable_pinning; global $comment_enable_upvote, $comment_enable_pinning;
$GLOBALS['comment'] = $comment; $GLOBALS['comment'] = $comment;
if (!($comment -> placeholder) && user_can_view_comment(get_comment_ID())){ if (!($comment->placeholder) && user_can_view_comment(get_comment_ID())){
?> ?>
<li class="comment-item" id="comment-<?php comment_ID(); ?>" data-id="<?php comment_ID(); ?>" data-use-markdown="<?php echo get_comment_meta(get_comment_ID(), "use_markdown", true);?>"> <li class="comment-item" id="comment-<?php comment_ID(); ?>" data-id="<?php comment_ID(); ?>" data-use-markdown="<?php echo get_comment_meta(get_comment_ID(), "use_markdown", true);?>">
<div class="comment-item-left-wrapper"> <div class="comment-item-left-wrapper">
@@ -1790,7 +1789,7 @@ function argon_comment_format($comment, $args, $depth){
<div class="comment-item-title"> <div class="comment-item-title">
<div class="comment-name"> <div class="comment-name">
<div class="comment-author"><?php echo get_comment_author_link();?></div> <div class="comment-author"><?php echo get_comment_author_link();?></div>
<?php if (user_can($comment -> user_id , "update_core")){ <?php if (user_can($comment->user_id , "update_core")){
echo '<span class="badge badge-primary badge-admin">' . __('博主', 'argon') . '</span>';} echo '<span class="badge badge-primary badge-admin">' . __('博主', 'argon') . '</span>';}
?> ?>
<?php echo get_comment_parent_info($comment); ?> <?php echo get_comment_parent_info($comment); ?>
@@ -1800,11 +1799,11 @@ function argon_comment_format($comment, $args, $depth){
<?php if (is_comment_private_mode(get_comment_ID()) && user_can_view_comment(get_comment_ID())){ <?php if (is_comment_private_mode(get_comment_ID()) && user_can_view_comment(get_comment_ID())){
echo '<span class="badge badge-success badge-private-comment">' . __('悄悄话', 'argon') . '</span>';} echo '<span class="badge badge-success badge-private-comment">' . __('悄悄话', 'argon') . '</span>';}
?> ?>
<?php if ($comment -> comment_approved == 0){ <?php if ($comment->comment_approved == 0){
echo '<span class="badge badge-warning badge-unapproved">' . __('待审核', 'argon') . '</span>';} echo '<span class="badge badge-warning badge-unapproved">' . __('待审核', 'argon') . '</span>';}
?> ?>
<?php <?php
echo parse_ua_and_icon($comment -> comment_agent); echo parse_ua_and_icon($comment->comment_agent);
?> ?>
</div> </div>
<div class="comment-info"> <div class="comment-info">
@@ -1832,7 +1831,7 @@ function argon_comment_format($comment, $args, $depth){
<button class="comment-pin btn btn-sm btn-outline-primary" data-id="<?php comment_ID(); ?>" type="button" style="margin-right: 2px;"><?php _ex('置顶', 'to pin', 'argon')?></button> <button class="comment-pin btn btn-sm btn-outline-primary" data-id="<?php comment_ID(); ?>" type="button" style="margin-right: 2px;"><?php _ex('置顶', 'to pin', 'argon')?></button>
<?php } <?php }
} ?> } ?>
<?php if ((check_comment_token(get_comment_ID()) || check_login_user_same($comment -> user_id)) && (get_option("argon_comment_allow_editing") != "false")) { ?> <?php if ((check_comment_token(get_comment_ID()) || check_login_user_same($comment->user_id)) && (get_option("argon_comment_allow_editing") != "false")) { ?>
<button class="comment-edit btn btn-sm btn-outline-primary" data-id="<?php comment_ID(); ?>" type="button" style="margin-right: 2px;"><?php _e('编辑', 'argon')?></button> <button class="comment-edit btn btn-sm btn-outline-primary" data-id="<?php comment_ID(); ?>" type="button" style="margin-right: 2px;"><?php _e('编辑', 'argon')?></button>
<?php } ?> <?php } ?>
<button class="comment-reply btn btn-sm btn-outline-primary" data-id="<?php comment_ID(); ?>" type="button"><?php _e('回复', 'argon')?></button> <button class="comment-reply btn btn-sm btn-outline-primary" data-id="<?php comment_ID(); ?>" type="button"><?php _e('回复', 'argon')?></button>
@@ -1849,10 +1848,10 @@ function argon_comment_shuoshuo_preview_format($comment, $args, $depth){
<div class="comment-item-inner " id="comment-inner-<?php comment_ID();?>"> <div class="comment-item-inner " id="comment-inner-<?php comment_ID();?>">
<span class="shuoshuo-comment-item-title"> <span class="shuoshuo-comment-item-title">
<?php echo get_comment_author_link();?> <?php echo get_comment_author_link();?>
<?php if( user_can($comment -> user_id , "update_core") ){ <?php if( user_can($comment->user_id , "update_core") ){
echo '<span class="badge badge-primary badge-admin">' . __('博主', 'argon') . '</span>';} echo '<span class="badge badge-primary badge-admin">' . __('博主', 'argon') . '</span>';}
?> ?>
<?php if( $comment -> comment_approved == 0 ){ <?php if( $comment->comment_approved == 0 ){
echo '<span class="badge badge-warning badge-unapproved">' . __('待审核', 'argon') . '</span>';} echo '<span class="badge badge-warning badge-unapproved">' . __('待审核', 'argon') . '</span>';}
?> ?>
: :
@@ -1886,10 +1885,10 @@ get_comment_captcha_seed();
class captcha_calculation{ //数字验证码 class captcha_calculation{ //数字验证码
var $captchaSeed; var $captchaSeed;
function __construct($seed) { function __construct($seed) {
$this -> captchaSeed = $seed; $this->captchaSeed = $seed;
} }
function getChallenge(){ function getChallenge(){
mt_srand($this -> captchaSeed + 10007); mt_srand($this->captchaSeed + 10007);
$oper = mt_rand(1 , 4); $oper = mt_rand(1 , 4);
$num1 = 0; $num1 = 0;
$num2 = 0; $num2 = 0;
@@ -1919,7 +1918,7 @@ class captcha_calculation{ //数字验证码
} }
} }
function getAnswer(){ function getAnswer(){
mt_srand($this -> captchaSeed + 10007); mt_srand($this->captchaSeed + 10007);
$oper = mt_rand(1 , 4); $oper = mt_rand(1 , 4);
$num1 = 0; $num1 = 0;
$num2 = 0; $num2 = 0;
@@ -1967,11 +1966,11 @@ function wrong_captcha($msg = null){
} }
function get_comment_captcha(){ function get_comment_captcha(){
$captcha = new captcha_calculation(get_comment_captcha_seed()); $captcha = new captcha_calculation(get_comment_captcha_seed());
return $captcha -> getChallenge(); return $captcha->getChallenge();
} }
function get_comment_captcha_answer(){ function get_comment_captcha_answer(){
$captcha = new captcha_calculation(get_comment_captcha_seed()); $captcha = new captcha_calculation(get_comment_captcha_seed());
return $captcha -> getAnswer(); return $captcha->getAnswer();
} }
// Geetest 验证码相关函数 // Geetest 验证码相关函数
function geetest_validate($lot_number, $captcha_output, $pass_token, $gen_time) { function geetest_validate($lot_number, $captcha_output, $pass_token, $gen_time) {
@@ -2323,9 +2322,9 @@ function ajax_post_comment(){
} }
$comment = wp_handle_comment_submission(wp_unslash($_POST)); $comment = wp_handle_comment_submission(wp_unslash($_POST));
if (is_wp_error($comment)){ if (is_wp_error($comment)){
$msg = $comment -> get_error_data(); $msg = $comment->get_error_data();
if (!empty($msg)){ if (!empty($msg)){
$msg = $comment -> get_error_message(); $msg = $comment->get_error_message();
} }
exit(json_encode(array( exit(json_encode(array(
'status' => 'failed', 'status' => 'failed',
@@ -2338,7 +2337,7 @@ function ajax_post_comment(){
if (isset($_POST['qq'])){ if (isset($_POST['qq'])){
if (!empty($_POST['qq']) && get_option('argon_comment_enable_qq_avatar') == 'true'){ if (!empty($_POST['qq']) && get_option('argon_comment_enable_qq_avatar') == 'true'){
$_comment = $comment; $_comment = $comment;
$_comment -> comment_author_email = $_POST['qq'] . "@avatarqq.com"; $_comment->comment_author_email = $_POST['qq'] . "@avatarqq.com";
do_action('set_comment_cookies', $_comment, $user); do_action('set_comment_cookies', $_comment, $user);
} }
} }
@@ -2360,8 +2359,8 @@ function ajax_post_comment(){
exit(json_encode(array( exit(json_encode(array(
'status' => 'success', 'status' => 'success',
'html' => $html, 'html' => $html,
'id' => $comment -> comment_ID, 'id' => $comment->comment_ID,
'parentID' => $comment -> comment_parent, 'parentID' => $comment->comment_parent,
'commentOrder' => (get_option("comment_order") == "" ? "desc" : get_option("comment_order")), 'commentOrder' => (get_option("comment_order") == "" ? "desc" : get_option("comment_order")),
'newCaptchaSeed' => $newCaptchaSeed, 'newCaptchaSeed' => $newCaptchaSeed,
'newCaptcha' => $newCaptcha, 'newCaptcha' => $newCaptcha,
@@ -2393,7 +2392,7 @@ function comment_markdown_parse($comment_content){
//解析 Markdown //解析 Markdown
$parsedown = new _Parsedown(); $parsedown = new _Parsedown();
$res = $parsedown -> text($comment_content); $res = $parsedown->text($comment_content);
/*$res = preg_replace( /*$res = preg_replace(
'/<code>([\s\S]*?)<\/code>/', '/<code>([\s\S]*?)<\/code>/',
'<pre>$1</pre>', '<pre>$1</pre>',
@@ -2499,16 +2498,16 @@ function comment_mail_notify($comment){
if ($comment == null){ if ($comment == null){
return; return;
} }
$id = $comment -> comment_ID; $id = $comment->comment_ID;
$commentPostID = $comment -> comment_post_ID; $commentPostID = $comment->comment_post_ID;
$commentAuthor = $comment -> comment_author; $commentAuthor = $comment->comment_author;
$parentID = $comment -> comment_parent; $parentID = $comment->comment_parent;
if ($parentID == 0){ if ($parentID == 0){
return; return;
} }
$parentComment = get_comment($parentID); $parentComment = get_comment($parentID);
$parentEmail = $parentComment -> comment_author_email; $parentEmail = $parentComment->comment_author_email;
$parentName = $parentComment -> comment_author; $parentName = $parentComment->comment_author;
$emailTo = "$parentName <$parentEmail>"; $emailTo = "$parentName <$parentEmail>";
if (get_comment_meta($parentID, "enable_mailnotice", true) == "true"){ if (get_comment_meta($parentID, "enable_mailnotice", true) == "true"){
if (check_email_address($parentEmail)){ if (check_email_address($parentEmail)){
@@ -2555,8 +2554,8 @@ add_action('argon_async_comment_mail_notify', 'argon_async_comment_mail_notify_h
function post_comment_updatemetas($id){ function post_comment_updatemetas($id){
$parentID = $_POST['comment_parent']; $parentID = $_POST['comment_parent'];
$comment = get_comment($id); $comment = get_comment($id);
$commentPostID = $comment -> comment_post_ID; $commentPostID = $comment->comment_post_ID;
$commentAuthor = $comment -> comment_author; $commentAuthor = $comment->comment_author;
$mailnoticeUnsubscribeKey = get_random_token(); $mailnoticeUnsubscribeKey = get_random_token();
//评论 Markdown 源码 //评论 Markdown 源码
update_comment_meta($id, "comment_content_source", $_POST['comment_content_source']); update_comment_meta($id, "comment_content_source", $_POST['comment_content_source']);
@@ -2598,7 +2597,7 @@ function post_comment_updatemetas($id){
update_comment_meta($id, "enable_mailnotice", "false"); update_comment_meta($id, "enable_mailnotice", "false");
} }
//向父级评论发送邮件 //向父级评论发送邮件
if ($comment -> comment_approved == 1){ if ($comment->comment_approved == 1){
wp_schedule_single_event(time() + 1, 'argon_async_comment_mail_notify', array($comment->comment_ID)); wp_schedule_single_event(time() + 1, 'argon_async_comment_mail_notify', array($comment->comment_ID));
} }
//保存 QQ 号 //保存 QQ 号
@@ -2697,7 +2696,7 @@ function pin_comment(){
'msg' => $newPinnedStat ? __('评论已经是置顶状态', 'argon') : __('评论已经是取消置顶状态', 'argon') 'msg' => $newPinnedStat ? __('评论已经是置顶状态', 'argon') : __('评论已经是取消置顶状态', 'argon')
))); )));
} }
if (get_comment($id) -> comment_parent != 0){ if (get_comment($id)->comment_parent != 0){
exit(json_encode(array( exit(json_encode(array(
'status' => 'failed', 'status' => 'failed',
'msg' => __('不能置顶子评论', 'argon') 'msg' => __('不能置顶子评论', 'argon')
@@ -2837,8 +2836,8 @@ function get_argon_comment_paginate_links_prev_url(){
//评论重排序(置顶优先) //评论重排序(置顶优先)
$GLOBALS['comment_order'] = get_option('comment_order'); $GLOBALS['comment_order'] = get_option('comment_order');
function argon_comment_cmp($a, $b){ function argon_comment_cmp($a, $b){
$a_pinned = get_comment_meta($a -> comment_ID, 'pinned', true); $a_pinned = get_comment_meta($a->comment_ID, 'pinned', true);
$b_pinned = get_comment_meta($b -> comment_ID, 'pinned', true); $b_pinned = get_comment_meta($b->comment_ID, 'pinned', true);
if ($a_pinned != "true"){ if ($a_pinned != "true"){
$a_pinned = "false"; $a_pinned = "false";
} }
@@ -2846,7 +2845,7 @@ function argon_comment_cmp($a, $b){
$b_pinned = "false"; $b_pinned = "false";
} }
if ($a_pinned == $b_pinned){ if ($a_pinned == $b_pinned){
return ($a -> comment_date_gmt) > ($b -> comment_date_gmt); return ($a->comment_date_gmt) > ($b->comment_date_gmt);
}else{ }else{
if ($a_pinned == "true"){ if ($a_pinned == "true"){
return ($GLOBALS['comment_order'] == 'desc'); return ($GLOBALS['comment_order'] == 'desc');
@@ -2858,7 +2857,7 @@ function argon_comment_cmp($a, $b){
function argon_get_comments(){ function argon_get_comments(){
global $wp_query; global $wp_query;
/*$cpage = get_query_var('cpage') ?? 1; /*$cpage = get_query_var('cpage') ?? 1;
$maxiumPages = $wp_query -> max_num_pages;*/ $maxiumPages = $wp_query->max_num_pages;*/
$args = array( $args = array(
'post__in' => array(get_the_ID()), 'post__in' => array(get_the_ID()),
'type' => 'comment', 'type' => 'comment',
@@ -2876,7 +2875,7 @@ function argon_get_comments(){
} }
$comment_query = new WP_Comment_Query; $comment_query = new WP_Comment_Query;
$comments = $comment_query -> query($args); $comments = $comment_query->query($args);
if (get_option("argon_enable_comment_pinning", "false") == "true"){ if (get_option("argon_enable_comment_pinning", "false") == "true"){
usort($comments, "argon_comment_cmp"); usort($comments, "argon_comment_cmp");
@@ -2894,7 +2893,7 @@ function argon_get_comments(){
$comments_per_page = get_option('comments_per_page'); $comments_per_page = get_option('comments_per_page');
$comments_count = 0; $comments_count = 0;
foreach ($comments as $comment){ foreach ($comments as $comment){
if ($comment -> comment_parent == 0){ if ($comment->comment_parent == 0){
$comments_count++; $comments_count++;
} }
} }
@@ -2912,10 +2911,10 @@ function argon_get_comments(){
//QQ Avatar 获取 //QQ Avatar 获取
function get_avatar_by_qqnumber($avatar){ function get_avatar_by_qqnumber($avatar){
global $comment; global $comment;
if (!isset($comment) || !isset($comment -> comment_ID)){ if (!isset($comment) || !isset($comment->comment_ID)){
return $avatar; return $avatar;
} }
$qqnumber = get_comment_meta($comment -> comment_ID, 'qq_number', true); $qqnumber = get_comment_meta($comment->comment_ID, 'qq_number', true);
if (!empty($qqnumber)){ if (!empty($qqnumber)){
preg_match_all('/width=\'(.*?)\'/', $avatar, $preg_res); preg_match_all('/width=\'(.*?)\'/', $avatar, $preg_res);
$size = $preg_res[1][0]; $size = $preg_res[1][0];
@@ -2977,7 +2976,7 @@ function the_content_filter($content){
$content = argon_fancybox($content); $content = argon_fancybox($content);
} }
global $post; global $post;
$custom_css = get_post_meta($post -> ID, 'argon_custom_css', true); $custom_css = get_post_meta($post->ID, 'argon_custom_css', true);
if (!empty($custom_css)){ if (!empty($custom_css)){
$content .= "<style>" . $custom_css . "</style>"; $content .= "<style>" . $custom_css . "</style>";
} }
@@ -3066,7 +3065,7 @@ function alert_footer_copyright_changed(){ ?>
</div> </div>
<?php } <?php }
function check_footer_copyright(){ function check_footer_copyright(){
$footer = file_get_contents(get_theme_root() . "/" . wp_get_theme() -> template . "/footer.php"); $footer = file_get_contents(get_theme_root() . "/" . wp_get_theme()->template . "/footer.php");
if ((strpos($footer, "github.com/solstice23/argon-theme") === false) && (strpos($footer, "solstice23.top") === false)){ if ((strpos($footer, "github.com/solstice23/argon-theme") === false) && (strpos($footer, "solstice23.top") === false)){
add_action('admin_notices', 'alert_footer_copyright_changed'); add_action('admin_notices', 'alert_footer_copyright_changed');
} }
@@ -3371,8 +3370,8 @@ add_action('wp_ajax_update_post_meta_ajax' , 'update_post_meta_ajax');
add_action('wp_ajax_nopriv_update_post_meta_ajax' , 'update_post_meta_ajax'); add_action('wp_ajax_nopriv_update_post_meta_ajax' , 'update_post_meta_ajax');
//首页显示说说 //首页显示说说
function argon_home_add_post_type_shuoshuo($query){ function argon_home_add_post_type_shuoshuo($query){
if (is_home() && $query -> is_main_query()){ if (is_home() && $query->is_main_query()){
$query -> set('post_type', array('post', 'shuoshuo')); $query->set('post_type', array('post', 'shuoshuo'));
} }
return $query; return $query;
} }
@@ -3381,11 +3380,11 @@ if (get_option("argon_home_show_shuoshuo") == "true"){
} }
//首页隐藏特定分类文章 //首页隐藏特定分类文章
function argon_home_hide_categories($query){ function argon_home_hide_categories($query){
if (is_home() && $query -> is_main_query()){ if (is_home() && $query->is_main_query()){
$excludeCategories = explode(",", get_option("argon_hide_categories")); $excludeCategories = explode(",", get_option("argon_hide_categories"));
$excludeCategories = array_map(function($cat) { return -$cat; }, $excludeCategories); $excludeCategories = array_map(function($cat) { return -$cat; }, $excludeCategories);
$query -> set('category__not_in', $excludeCategories); $query->set('category__not_in', $excludeCategories);
$query -> set('tag__not_in', $excludeCategories); $query->set('tag__not_in', $excludeCategories);
} }
return $query; return $query;
} }
@@ -3395,7 +3394,7 @@ if (get_option("argon_hide_categories") != ""){
//文章过时信息显示 //文章过时信息显示
function argon_get_post_outdated_info(){ function argon_get_post_outdated_info(){
global $post; global $post;
$post_show_outdated_info_status = strval(get_post_meta($post -> ID, 'argon_show_post_outdated_info', true)); $post_show_outdated_info_status = strval(get_post_meta($post->ID, 'argon_show_post_outdated_info', true));
if (get_option("argon_outdated_info_tip_type") == "toast"){ if (get_option("argon_outdated_info_tip_type") == "toast"){
$before = "<div id='post_outdate_toast' style='display:none;' data-text='"; $before = "<div id='post_outdate_toast' style='display:none;' data-text='";
$after = "'></div>"; $after = "'></div>";
@@ -3731,25 +3730,25 @@ function shortcode_friend_link($attr,$content=""){
foreach ($friendlinks as $friendlink){ foreach ($friendlinks as $friendlink){
$out .= " $out .= "
<div class='link mb-2 col-lg-6 col-md-6'> <div class='link mb-2 col-lg-6 col-md-6'>
<div class='card shadow-sm friend-link-container" . ($friendlink -> link_image == "" ? " no-avatar" : "") . "'>"; <div class='card shadow-sm friend-link-container" . ($friendlink->link_image == "" ? " no-avatar" : "") . "'>";
if ($friendlink -> link_image != ''){ if ($friendlink->link_image != ''){
$out .= " $out .= "
<img src='" . $friendlink -> link_image . "' class='friend-link-avatar bg-gradient-secondary'>"; <img src='" . $friendlink->link_image . "' class='friend-link-avatar bg-gradient-secondary'>";
} }
$out .= " <div class='friend-link-content'> $out .= " <div class='friend-link-content'>
<div class='friend-link-title title text-primary'> <div class='friend-link-title title text-primary'>
<a target='_blank' href='" . esc_url($friendlink -> link_url) . "'>" . esc_html($friendlink -> link_name) . "</a> <a target='_blank' href='" . esc_url($friendlink->link_url) . "'>" . esc_html($friendlink->link_name) . "</a>
</div> </div>
<div class='friend-link-description'>" . esc_html($friendlink -> link_description) . "</div>"; <div class='friend-link-description'>" . esc_html($friendlink->link_description) . "</div>";
$out .= " <div class='friend-link-links'>"; $out .= " <div class='friend-link-links'>";
foreach (explode("\n", $friendlink -> link_notes) as $line){ foreach (explode("\n", $friendlink->link_notes) as $line){
$item = explode("|", trim($line)); $item = explode("|", trim($line));
if(stripos($item[0], "fa-") !== 0){ if(stripos($item[0], "fa-") !== 0){
continue; continue;
} }
$out .= "<a href='" . esc_url($item[1]) . "' target='_blank'><i class='fa " . sanitize_html_class($item[0]) . "'></i></a>"; $out .= "<a href='" . esc_url($item[1]) . "' target='_blank'><i class='fa " . sanitize_html_class($item[0]) . "'></i></a>";
} }
$out .= "<a href='" . esc_url($friendlink -> link_url) . "' target='_blank' style='float:right; margin-right: 10px;'><i class='fa fa-angle-right' style='font-weight: bold;'></i></a>"; $out .= "<a href='" . esc_url($friendlink->link_url) . "' target='_blank' style='float:right; margin-right: 10px;'><i class='fa fa-angle-right' style='font-weight: bold;'></i></a>";
$out .= " $out .= "
</div> </div>
</div> </div>
@@ -3929,12 +3928,12 @@ function shortcode_github($attr,$content=""){
throw new Exception(""); throw new Exception("");
} }
$json = json_decode($json); $json = json_decode($json);
$description = esc_html($json -> description); $description = esc_html($json->description);
if (!empty($json -> homepage)){ if (!empty($json->homepage)){
$description .= esc_html(" <a href='" . $json -> homepage . "' target='_blank' no-pjax>" . $json -> homepage . "</a>"); $description .= esc_html(" <a href='" . $json->homepage . "' target='_blank' no-pjax>" . $json->homepage . "</a>");
} }
$stars = $json -> stargazers_count; $stars = $json->stargazers_count;
$forks = $json -> forks_count; $forks = $json->forks_count;
}catch (Exception $e){ }catch (Exception $e){
$getdata = "frontend"; $getdata = "frontend";
} }
@@ -4236,13 +4235,13 @@ function argon_get_search_post_type_array(){
return $arr; return $arr;
} }
function search_filter($query) { function search_filter($query) {
if (!$query -> is_search || is_admin()) { if (!$query->is_search || is_admin()) {
return $query; return $query;
} }
if (get_option('argon_enable_search_filters', 'true') == 'false'){ if (get_option('argon_enable_search_filters', 'true') == 'false'){
return $query; return $query;
} }
$query -> set('post_type', argon_get_search_post_type_array()); $query->set('post_type', argon_get_search_post_type_array());
return $query; return $query;
} }
add_filter('pre_get_posts', 'search_filter'); add_filter('pre_get_posts', 'search_filter');
@@ -4288,7 +4287,6 @@ function argon_enqueue_qrcode_script() {
} }
add_action('wp_enqueue_scripts', 'argon_enqueue_qrcode_script'); add_action('wp_enqueue_scripts', 'argon_enqueue_qrcode_script');
// 获取 Git 版本信息 // 获取 Git 版本信息
function argon_get_git_info() { function argon_get_git_info() {
$theme_dir = get_template_directory(); $theme_dir = get_template_directory();
@@ -4353,7 +4351,6 @@ function argon_get_git_info() {
); );
} }
// ========== TODO 列表功能 ========== // ========== TODO 列表功能 ==========
// 获取 TODO 列表 // 获取 TODO 列表