【问题标题】:Fixing custom query for wordpress/elementor with Advanced Custom Fields relationship field post types使用高级自定义字段关系字段帖子类型修复 wordpress/elementor 的自定义查询
【发布时间】:2021-04-30 14:45:58
【问题描述】:

我想知道是否有人可以帮助我。 我似乎无法让这个案例工作(因为我是 PHP 的菜鸟)。

案例: 我的 wordpress 网站有两种“帖子类型”

  • 网络研讨会
  • Spreker(荷兰语演讲者)

通过高级自定义帖子,我在网络研讨会帖子类型中设置了一个关系字段。所以我可以选择与该特定帖子相关的发言人。

我使用 elementor 并且需要使用 elementor 的帖子小部件通过单个网络研讨会页面模板显示相关演讲者。这必须通过自定义查询来完成。在 elementor 中,您可以设置自定义查询 ID。这需要一个 php 查询代码。

现在我似乎无法正确获取此查询数组代码。

关于自定义查询的 Elementor 文档: https://developers.elementor.com/custom-query-filter/#Using_the_Custom_Filter

互联网上的一些相关答案(但似乎仍然无法正常工作): Custom Query Filter for Elementor Posts by relationship field (ACF)

我在 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 );
} );

【问题讨论】:

    标签: php wordpress elementor


    【解决方案1】:

    看起来我遇到了同样的问题。 我已经用这个自定义查询解决了它

    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

    让我知道它是否有效

    【讨论】:

      猜你喜欢
      • 2015-09-01
      • 2018-01-29
      • 1970-01-01
      • 2016-06-25
      • 2017-08-26
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 2013-11-25
      相关资源
      最近更新 更多