You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress门户页加载异常求助:仅切回标签或开Dev Tools可加载

WordPress门户页预加载器失效排查与修复方案

问题概述

主站运行正常,但门户页预加载器无法加载内容,仅在切换浏览器标签切回或打开开发者工具时恢复正常。报错信息如下:

Uncaught TypeError: Cannot read properties of undefined (reading 'class_group')
    at HTMLOptGroupElement.<anonymous> (jquery.minimalect.min.js?ver=1.0:6:5819)
    at Function.each (jquery-3.6.1.min.js?ver=3.6.1:2:3003)
    at e.<computed>.each (jquery-3.6.1.min.js?ver=3.6.1:2:1481)
    at i._parseSelect (jquery.minimalect.min.js?ver=1.0:6:5773)
    at i._init (jquery.minimalect.min.js?ver=1.0:6:1747)
    at new i (jquery.minimalect.min.js?ver=1.0:6:215)
    at HTMLSelectElement.<anonymous> (jquery.minimalect.min.js?ver=1.0:6:11349)
    at Function.each (jquery-3.6.1.min.js?ver=3.6.1:2:3003)
    at e.<computed>.each (jquery-3.6.1.min.js?ver=3.6.1:2:1481)
    at e.fn.<computed> [as minimalect] (jquery.minimalect.min.js?ver=1.0:6:11155)
(index):130 Uncaught TypeError: Cannot read properties of null (reading '1')
    at window.onerror ((index):130:83)
/wp-admin/admin-ajax.php:1          
Failed to load resource: the server responded with a status of 500 ()

切换至TwentyTwentyTwo主题后恢复正常,确认问题出自当前主题代码。

排查与修复步骤

1. 修正Minimalect初始化时机

报错源于class_group属性未定义,结合"切标签/开DevTools才加载"的现象,大概率是主题在DOM未完全渲染时就初始化了Minimalect插件。

  • 找到主题中调用minimalect()的代码,用$(document).ready()包裹,确保DOM加载完成后再执行初始化:
    $(document).ready(function() {
      // 仅针对门户页的下拉选择器初始化
      var $portalSelect = $('.portal-page select');
      if ($portalSelect.length) {
        $portalSelect.minimalect({
          // 显式配置class_group参数,避免未定义报错
          class_group: 'minimalect-group'
        });
      }
    });
    
  • 若主题使用异步加载脚本,需确保Minimalect依赖的jQuery加载完成后再执行初始化逻辑。

2. 修复admin-ajax.php 500服务器错误

500错误是服务器端问题,需定位具体原因:

  • 开启WordPress错误日志:在wp-config.php中添加以下代码,日志文件将生成在wp-content/debug.log中:
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);
    
  • 查看日志中admin-ajax.php的具体报错,常见原因包括:
    • Ajax回调函数未定义或存在语法错误
    • 权限不足导致数据库查询失败
    • 主题函数中调用了不存在的WordPress核心函数
  • 检查主题中注册Ajax的代码,确保wp_ajax_和wp_ajax_nopriv_钩子的回调函数正确定义,且末尾执行die():
    add_action('wp_ajax_load_portal_content', 'load_portal_content_callback');
    add_action('wp_ajax_nopriv_load_portal_content', 'load_portal_content_callback');
    
    function load_portal_content_callback() {
      // 业务逻辑处理
      $content = get_portal_content();
      echo json_encode($content);
      // 必须终止脚本执行
      die();
    }
    

3. 修复Minimalect兼容性问题

修改压缩版Minimalect代码无效时,替换为未压缩源码并添加容错判断:

  • 替换主题中的jquery.minimalect.min.js为未压缩版本,找到_parseSelect方法,添加属性存在性判断:
    _parseSelect: function() {
      var m = this;
      $('optgroup', m.$select).each(function() {
        // 容错:若options或class_group未定义,设置默认值
        if (!m.options) m.options = {};
        if (!m.options.class_group) m.options.class_group = 'minimalect-group';
        
        var groupClass = m.options.class_group;
        // 后续原有逻辑...
      });
    }
    

4. 禁用主题干扰性优化

  • 临时禁用主题的JS压缩/合并功能,排查是否是压缩过程破坏了Minimalect的代码结构。
  • 检查主题是否给jQuery添加了defer或async属性,这可能导致Minimalect初始化时jQuery未就绪,可移除该属性测试。

内容的提问来源于stack exchange,提问作者eagle8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:20:52