大数跨境

限制Elementor的翻页模块只在子页面之间翻页

限制Elementor的翻页模块只在子页面之间翻页 wordpress建站开发
2026-10-26
2
导读:最近有一个wordpress外贸建站项目中,产品是使用独立页面制作的,产品详情作为它下面的子页面,有多个产品,所以就有多个子页面,用户想在子页面详情页之间翻页切换。

在WordPress外贸建站项目中,若产品详情页采用独立页面(Page)作为子页面构建,常需实现子页面间的翻页切换功能。虽然Elementor自带的Post Navigation模块支持文章翻页及分类限制,但默认情况下页面缺乏分类关联,直接使用该模块会导致翻页时跳转至首页或其他无关页面。

解决方案:限制仅在指定父级页面的子页面间翻页

为解决此问题,可通过添加自定义代码,将翻页逻辑限制在特定父级页面的子页面范围内。请将以下代码添加至主题的functions.php文件或WP Code等代码片段插件中:

/**
 * 仅限指定父级页面的子页面之间翻页
 */
add_filter('get_previous_post_where', 'sibling_page_navigation_2455', 10, 5);
add_filter('get_next_post_where',     'sibling_page_navigation_2455', 10, 5);

function sibling_page_navigation_2455($where, $in_same_term, $excluded_terms, $taxonomy, $post) {

    // 仅在前台且当前为有效页面时生效
    if (is_admin() || !$post) {
        return $where;
    }

    // 修改下方的 2455 为你的实际父级页面ID
    // 只有当前页面的父级ID匹配时才应用限制
    if ((int) $post->post_parent !== 2455) {
        return $where; // 其他页面保持默认全站翻页逻辑
    }

    global $wpdb;
    $where .= $wpdb->prepare(
        " AND p.post_parent = %d AND p.post_type = 'page'",
        2455 // 此处同样需替换为实际的父级页面ID
    );

    return $where;
}

注意事项:

  • 代码中的2455为示例父级页面ID,请根据实际需求替换为你自己的父级页面ID。
  • 部署代码后,无需对Elementor的Post Navigation模块设置额外条件,直接更新发布产品详情页即可生效。

如何获取页面ID

获取页面ID的操作步骤如下:

  1. 进入WordPress后台的“页面”列表。
  2. 将鼠标悬停在目标页面对应的【编辑】按钮上(无需点击)。
  3. 观察浏览器底部状态栏显示的链接,其中post=参数后的数字即为该页面的ID。
【声明】内容源于网络
0
0
wordpress建站开发
各类跨境出海行业相关资讯
内容 1150
粉丝 0
wordpress建站开发 各类跨境出海行业相关资讯
总阅读22.4k
粉丝0
内容1.1k