php - 如何使用 php 将页面设置为另一个页面的翻译?
问题描述
我目前正在使用 PHP 创建一个登录页面网络并将它们发布在 WordPress 上。这些页面具有父子关系,我在使用之前添加了元数据wp_insert_post()
以便发布它们。我的代码工作正常,但页面是用英语创建的,这是 WP 的主要语言。但是,该站点托管了另外 2 种语言,并使用 WPML 插件进行翻译。有没有办法只使用代码来创建翻译页面并将它们设置为原始页面的翻译?
解决方案
这是一个如何在 PHP 中以编程方式插入帖子和翻译的示例。这en
是默认语言,de
是辅助语言。
基本上是:
- 创建两个帖子。
- 获取
trid
第一个。 - 将其与第二个连接。
样本:
$new_page_id = wp_insert_post($new_page);
$new_page_translated_id = wp_insert_post($new_page_translated);
$wpml_element_type = apply_filters( 'wpml_element_type', get_post_type( $new_page_id ) );
$wpml_element_trid = apply_filters( 'wpml_element_trid', false, $new_page_id, $wpml_element_type );
$set_language_args = array(
'element_id' => $new_page_translated_id,
'element_type' => $wpml_element_type,
'trid' => $wpml_element_trid,
'language_code' => 'de',
'source_language_code' => 'en',
);
do_action( 'wpml_set_element_language_details', $set_language_args );
推荐阅读
- sql - 如何在 Oracle 中获得自然数字排序顺序?
- google-apps-script - 仅将当前工作表导出到 Excel 的功能,其中包含值和格式
- dns - 具有自定义域的无法访问的 gitlab 页面
- angular - 用户导航前的补丁
- excel - 如何根据相同的 CELL [EXCEL] 更改 CELL 的值
- java - 搜索手机上的所有文件和文件夹?
- sql - 如何在 SQL 中使用 PIVOT 将方法分配给特定参数?
- r - 如何在 R 中重命名具有相似名称和代码的变量?
- ansible - 如何从 Ansible 中控制器的主机文件中获取 IP 地址?
- vba - 检查文本表单字段中的重复项