0

我有某种短代码,例如[wp-text text="Lorem Impsum etc" button_text="Read More"][/wp-text].

我想从中提取此短代码post content field,然后发送这两个属性:text以及button_text用于翻译到 SDL World Server。

在得到 SDL 的响应后,我想相应地替换该短代码。

有什么建议或帮助吗?

4

1 回答 1

0

以下是关于您的方法的建议:

  1. 解析简码属性

拥有内容后,您可以使用提供的 Wordpress 函数shortcode_parse_atts解析变量并提取所有短代码属性

  1. 对于每个解析的值,对提供的 SDL World Server REST API 进行 API 调用(或者为了获得更好的性能,您可以对所有翻译进行分组,并在 API 支持的情况下使用一个复杂的 API 调用进行翻译

  2. 获得响应后,将原始字符串替换为翻译后的字符串。

这是 PHP 中的示例伪代码

$shotcode_attributes = shortcode_parse_atts( $post->post_content );

foreach ( $shortcode_attributes as $attribute => $value ) {
  // Make SDL World Server API call refer to the API documentation for the exact way
  $translated_value = $sdlApiClient->translate( $value );

  // Replace the translated value.
  // You can be more precise here ensuring that the value is inside the shortcode
  $post->post_content = str_replace(
    "{$attribute}=\"{$value}\"", 
    "{$attribute}=\"{$translated_value}\"", 
    $post->post_content
  );
}

您还可以研究和检查提供的SDL WordPress 连接器

于 2019-01-09T16:37:51.743 回答