我创建了一个名为“my_custom_field”的自定义字段(使用 ACF 插件)。然后我使用此代码来获取该自定义字段的值工作正常:
echo $output = get_post_meta($data['post_id'], "my_custom_field", true);
我的网站有两种语言(法语和西班牙语)。我使用 WPML 进行翻译。
问题是$output始终显示默认语言(法语)的值,即使$output已加载并打印在“西班牙语”页面中。
我想我需要在代码中添加其他内容来检测语言并相应地显示 $ 输出。
要使 ACF 字段可翻译为 WPML,您需要安装 ACFML 插件,您可以从 WPML 网站上的帐户下载该插件。
使用此插件,您可以使 ACF 字段可翻译。您可以在官方文档中阅读更多内容:https://wpml.org/documentation/lated-projects/translate-sites-built-with-acf/
我会补充一点,切换wpml语言后,
get_field
仍然返回原始语言的字段,要解决这个问题,你需要使用
add_filter('acf/settings/current_language', function () {
return apply_filters( 'wpml_current_language', null );
});
这解决了问题:
$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);