Wordpress:以正确的语言获取自定义字段值 (WPML)

问题描述 投票:0回答:3

我创建了一个名为“my_custom_field”的自定义字段(使用 ACF 插件)。然后我使用此代码来获取该自定义字段的值工作正常

echo $output = get_post_meta($data['post_id'], "my_custom_field", true);

我的网站有两种语言(法语和西班牙语)。我使用 WPML 进行翻译。

问题是$output始终显示默认语言(法语)的值,即使$output已加载并打印在“西班牙语”页面中。

我想我需要在代码中添加其他内容来检测语言并相应地显示 $ 输出。

wordpress advanced-custom-fields
3个回答
1
投票

要使 ACF 字段可翻译为 WPML,您需要安装 ACFML 插件,您可以从 WPML 网站上的帐户下载该插件。

使用此插件,您可以使 ACF 字段可翻译。您可以在官方文档中阅读更多内容:https://wpml.org/documentation/lated-projects/translate-sites-built-with-acf/


0
投票

我会补充一点,切换wpml语言后,

get_field
仍然返回原始语言的字段,要解决这个问题,你需要使用

add_filter('acf/settings/current_language', function () {
    return apply_filters( 'wpml_current_language', null );
});

-1
投票

这解决了问题:

$wpml_post_id = icl_object_id($data['post_id'], 'page', false,ICL_LANGUAGE_CODE);
echo $output = get_post_meta($wpml_post_id, "my_custom_field", true);
© www.soinside.com 2019 - 2024. All rights reserved.