php - 使用高级自定义字段关系字段帖子类型修复 wordpress/elementor 的自定义查询
问题描述
我想知道是否有人可以帮助我。我似乎无法让这个案例工作(因为我是 PHP 的菜鸟)。
案例:我的 wordpress 网站有两种“帖子类型”:
- 网络研讨会
- Spreker(荷兰语发言人)
通过高级自定义帖子,我在网络研讨会帖子类型中设置了一个关系字段。所以我可以选择与该特定帖子相关的发言人。
我使用 elementor 并且需要使用 elementor 的帖子小部件通过单个网络研讨会页面模板显示相关的演讲者。这必须通过自定义查询来完成。在 elementor 中,您可以设置自定义查询 ID。这需要一个 php 查询代码。
现在我似乎无法正确获取此查询数组代码。
关于自定义查询的 Elementor 文档: https ://developers.elementor.com/custom-query-filter/#Using_the_Custom_Filter
互联网上的一些相关答案(但似乎仍然无法正常工作): 按关系字段 (ACF) 对 Elementor 帖子的自定义查询过滤器
我在 Elementor 中使用的自定义查询 ID 是“Spreker_filter”
我的代码:
add_action( 'elementor/query/spreker_filter', function( $query ) {
// Get current meta Query
$meta_query = $query->get( 'meta_query' );
// If there is no meta query when this filter runs, it should be initialized as an empty array.
if ( ! $meta_query ) {
$meta_query = [];
}
// Append our meta query
$meta_query[] = [
'key' => 'sprekers',
'value' => '"' . get_the_ID() . '"',
'compare' => 'in',
];
$query->set( 'meta_query', $meta_query );
} );
解决方案
看起来我遇到了同样的问题。我已经用这个自定义查询解决了它
add_action( 'elementor/query/retrieveLinkedCpts', function( $query ) {
$ids = get_field( 'my_relationship_field', false, false );
$query->set( 'post__in', $ids );
});
来源:https ://github.com/elementor/elementor/issues/4916
让我知道它是否有效
推荐阅读
- c - 平台无关的方式来降低浮点常量值的精度
- mysql - 如何在同一列mysql上实现两个聚合函数
- swift - 修改一个新数组然后崩溃
- mysql - group by 在侧子查询中返回多行
- angular - 将 HTML 文件嵌入 Angular div
- python - Python参数写入不同的文件
- firefox - Firefox 问题:与 wss://web_page_address 的连接在页面加载时中断
- arrays - 如何使用 perl 将字符串拆分为数组?
- android - 在 Android 上将视频和贴纸图片分享到 Instagram Story
- typescript - 如何在 TypeScript 项目中查找所有导入的(在代码中)依赖项?