在B2B外贸建站过程中,经常会使用Page页面使用Elementor编辑器去制作产品页面,有的时候就会出现在父页面中调用子页面的需要,本文主要就是教会大家如何在post 小工具中调用父页面的子页面。
需求说明
- 能够显示服务页面的所有子页面,然后在添加更多页面时自动更新;
- 可以在排除字段的上方(或下方)(在查询下)添加一个字段,写明 “显示…的子页面”,然后让用户选择一个页面,并相应地过滤查询。
比如有一个包含 10 个子页面的 “服务 “页面。需要在 “服务 “页面上添加一个 “帖子 “元素,并链接到每个子页面。现在,必须通过 “手动选择 “来选择每个子页面。如果只有几个页面,这样做还可以。但当列表较长或经常更新时,就会很乏味。
如何在 “帖子 “小工具中添加 “父页面的子页面
我只建议有一定模板文件编辑知识的人这样做。不要编辑父主题(大多数情况下),确保创建了一个子主题。
方法一: 插入代码
1.function.php中插入以下代码,保存
// Shows children of current page in Posts Widget. "帖子 "小工具中添加 "父页面的子页面
// Put the word 'children' in the 'Query ID'field.在Query ID中输入 children
// Read more at: https://developers.elementor.com/custom-query-filter
// @url https://kuajinggu.com/
add_action( 'elementor/query/children', function( $query ) {
$current_pageID = get_queried_object_id();
// Modify the query
$query->set( 'post_parent', $current_pageID );
} );
2.在elementor中使用post小工具
3.post中相关设置
Source为page
Query ID 为 children
方法二: 使用Code Snippets 插件
新增代码即可;
如何在 “帖子 “小工具中添加 “获取同一父级的所有页面”
方法一:function中添加代码
将此添加到主题文件夹下的 functions.php 文件中。在元素上使用 get_siblings 作为查询 ID。
// Showing children of current page in Posts Widget
// 获取同一父级的所有页面
// 在Query ID中输入 get_siblings
// @url https://kuajinggu.com/
add_action( 'elementor/query/get_siblings', function( $query ) {
$current_pageID = get_queried_object_id();
// Modify the query
$query->set( 'post_parent', wp_get_post_parent_id($current_pageID) );
} );
方法二:code snippets添加代码
Source为page,在Query ID中输入 get_siblings