首页 > 解决方案 > 如何使用 php 将页面设置为另一个页面的翻译?

问题描述

我目前正在使用 PHP 创建一个登录页面网络并将它们发布在 WordPress 上。这些页面具有父子关系,我在使用之前添加了元数据wp_insert_post()以便发布它们。我的代码工作正常,但页面是用英语创建的,这是 WP 的主要语言。但是,该站点托管了另外 2 种语言,并使用 WPML 插件进行翻译。有没有办法只使用代码来创建翻译页面并将它们设置为原始页面的翻译?

标签: phpwordpresswpml

解决方案


这是一个如何在 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 );

推荐阅读