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

WordPress Divi主题中Portfolio项目偏移与分页共存问题求助

解决Divi Portfolio模块偏移后分页失效的问题

我完全理解你遇到的困扰:给Divi的Portfolio模块手动添加偏移量后,分页功能直接失效,点击「旧条目」始终加载的是偏移后的第一页内容。这问题主要出在你的代码没有处理AJAX分页请求的偏移逻辑,还存在变量名不匹配的小错误。

问题根源拆解

你的现有代码有两个核心问题:

  • 变量名错误:使用了未定义的$paged和$posts_number,但实际应该用代码里已经定义的$et_paged和$args['posts_number']
  • AJAX分支缺失偏移处理:分页的「旧条目」是通过AJAX请求加载的,但你的代码在AJAX分支里完全没处理偏移量,导致请求还是按默认无偏移的规则查询数据

修复后的完整代码

下面是修正后的代码,我标注了关键修改点:

// Native conditional tag only works on page load. Data update needs $conditional_tags data
$is_front_page = et_fb_conditional_tag( 'is_front_page', $conditional_tags );
$is_search = et_fb_conditional_tag( 'is_search', $conditional_tags );
$offset_number = 3; 

// Prepare query arguments
$query_args = array(
    'posts_per_page' => (int) $args['posts_number'],
    'post_type' => 'project',
    'post_status' => 'publish',
);

// Conditionally get paged data
if ( defined( 'DOING_AJAX' ) && isset( $current_page[ 'paged'] ) ) {
    $et_paged = intval( $current_page[ 'paged' ] );
    // --- 新增:AJAX分页请求时也计算偏移量 ---
    $query_args['offset'] = ( ( $et_paged - 1 ) * intval( $args['posts_number'] ) ) + intval( $offset_number );
} else {
    $et_paged = $is_front_page ? get_query_var( 'page' ) : get_query_var( 'paged' );
    // --- 修复变量名:替换未定义的$paged和$posts_number ---
    $query_args['offset'] = ( ( $et_paged - 1 ) * intval( $args['posts_number'] ) ) + intval( $offset_number );
}

关键修改说明

  1. 统一变量命名:把未定义的$paged替换为实际使用的$et_paged,$posts_number替换为模块配置里的$args['posts_number'],确保偏移计算逻辑不会出错
  2. AJAX请求添加偏移处理:原来的AJAX分支完全忽略了偏移规则,现在添加了和页面加载时一致的偏移计算,这样分页请求就能正确跳过前面的项目
  3. 保持逻辑一致性:页面初始化和AJAX分页请求使用完全相同的偏移计算规则,确保前后端返回的数据一致

额外注意事项

  • 如果你需要给不同页面设置不同偏移量,可以在$offset_number的赋值逻辑里加条件判断(比如通过get_the_ID()检查当前页面ID)
  • 测试分页时,确保你的Portfolio项目总数足够多(至少满足偏移量 + 每页数量 * 2),这样才能看到明显的分页效果
  • 如果你用了缓存插件,修改代码后记得清除缓存,避免旧代码残留影响测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:59:29