ElasticPress如何将Meta包括到映射中?

时间:2019-03-21 作者:Michael Rogers

有一个插件叫做ElasticPress 它允许连接ElasticSearch 服务器到WordPress。默认情况下,此插件不会MAP 以\\开头的元键(自定义字段)(下划线)。但它有一个过滤器,可以将任何自定义字段添加到映射中:

ep_prepare_meta_whitelist_key

我的问题是,我不知道如何使用此过滤器将我的字段包括到映射中。

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

解决方案1我尚未测试该插件,但基于您问题中链接的以下代码:

apply_filters( \'ep_prepare_meta_whitelist_key\', false, $key, $post )
您可以这样做以明确允许受保护/私有的元密钥:

add_filter( \'ep_prepare_meta_whitelist_key\', function( $allow, $meta_key ){
    $meta_keys = [\'_one\', \'_two\', \'_etc\']; // meta keys you want to allow
    return in_array( $meta_key, $meta_keys );
}, 10, 2 );
溶液2或者this part, 您可以使用ep_prepare_meta_allowed_protected_keys 筛选以将自定义保护的元密钥添加到可索引的私有元密钥数组中:

add_filter( \'ep_prepare_meta_allowed_protected_keys\', function( $meta_keys ){
    return array_merge( $meta_keys, [\'_one\', \'_two\', \'_etc\'] );
} );
如果我是你,我会使用第二种解决方案。但这真的取决于你。:)

PS:代码将放在主题函数文件中