最近有一个wordpress外贸建站项目中,产品是使用独立页面制作的,产品详情作为它下面的子页面,有多个产品,所以就有多个子页面,用户想在子页面详情页之间翻页切换。
网站使用的是Elementor自带的Post Navigation模块,它一般只用到文章详情页,可以限制只对文章翻页,或者限制指定的分类目录翻页。但页面默认是没有分类关系的,使用这个模块就只能在所有页面之间切换,有可能产品详情页一切换就跑到首页或关于页面去了。
要解决这个问题可以使用以下代码,让它限制只在指定页面的子页面间翻页。
/** * 仅限XXX子页面之间翻页, */ 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; } // 只有“当前页面的父级 = 产品页(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 ); return $where; }
大家可以把它上面的代码添加到主题或子主题的functions.php文件中,也可以添加到wp code之类的插件中。代码中的2455是父级页面的ID,这个改成你自己的就可以了。
添加成功之后Post Navigation不用做任何条件限制,直接更新发布产品详情页就OK了。
补充:
获取页面ID的步骤:打开页面列表,鼠标放到对应页面下的【编辑】按钮上,不用点击打开,此时浏览底部会显示一个链接,这个链接中【post=】后面的数字就是页面ID了。
© Copyright 2020~2026. 悦然网络工作室/悦然wordpress建站 专注中小企业wordpress建站 All Rights Reserved.网站地图本站图片来源为Pexels、Pixabay、Freepik、Unsplash等图片库的免费许可,CC0协议;还有部分为自己手绘或AI生成,版权碰瓷请自重!法律服务:law@yueranseo.com蜀ICP备20016391号-1 川公网安备 51011502000367号