benjaminmedia / wp-trapp
将内容发送到TRAPP翻译服务。
Requires
- php: >=5.4
- bonnier/php-sdk: 3.*
This package is auto-updated.
Last update: 2024-09-12 23:16:04 UTC
README
将内容发送到TRAPP翻译服务。
安装
由于在WordPress社区中,Composer不是必需的,因此有两种安装此插件的方式。
Composer
如果项目正在加载主要的Composer自动加载文件。
安装插件
composer create-project benjaminmedia/wp-trapp 1.*
以工作dev/master版本安装插件
composer create-project benjaminmedia/wp-trapp --stability dev --prefer-dist
以工作dev/master版本安装插件并包含所有vcs文件
composer create-project benjaminmedia/wp-trapp --stability dev --prefer-source --keep-vcs
WP插件
如果插件不应该依赖于除了其自己的Composer功能之外的任何东西。
安装插件
composer require benjaminmedia/wp-trapp 1.*
以工作dev/master版本安装插件
composer require benjaminmedia/wp-trapp dev-master --prefer-dist
以工作dev/master版本安装插件并包含所有vcs文件
composer require benjaminmedia/wp-trapp dev-master --prefer-source
设置
TRAPP需要一些信息,如用户名和密码。以下是它们如何定义。
用户名
定义WA_TRAPP_USERNAME
或从bp_trapp_service_username
过滤器中。
add_filter('bp_trapp_service_username', function() {
{
return 'myuser';
});
密钥
定义WA_TRAPP_SECRET
或从bp_trapp_service_secret
过滤器中。
add_filter('bp_trapp_service_secret', function() {
{
return 'mysecret';
});
开发
默认为false。如果找到APP_ENV
,则当APP_ENV
是生产环境时返回true。在bp_trapp_service_development
过滤器中更改开发定义。
add_filter('bp_trapp_service_development', function($isDevelopment) {
{
if (defined('WP_DEBUG') && WP_DEBUG) {
return true;
}
return $isDevelopment;
});
应用代码
定义WA_APP_CODE
或从bp_trapp_save_app_code
过滤器中。
add_filter('bp_trapp_save_app_code', function() {
{
return 'my_app_code';
});
品牌代码
定义WA_BRAND_CODE
或从bp_trapp_save_brand_code
过滤器中。
add_filter('bp_trapp_save_brand_code', function() {
{
return 'my_brand_code';
});
扩展(钩子)
bp_trapp_post_types
在此过滤器中白名单自定义帖子类型。如果'mycpt'自定义帖子类型应该向TRAPP发送翻译,则这是该过滤器的用途。
$post_types
帖子类型的数组值
/**
* Adds 'mycpt' to the accepted TRAPP post types.
*/
add_filter('bp_trapp_post_types', function($post_types) {
$post_types[] = 'mycpt';
return $post_types;
});
bp_trapp_save_{$post_type}_taxonomies
启用哪些分类法应该从主分类复制到新翻译。这将复制从主分类的术语翻译版本。
{$post_type}
是一个动态过滤器,并且特定于 {$post_type}
$taxonomies
分类法的数组值
/**
* Clone taxonomy 'myct' when a 'mycpt' post type is translated.
*/
add_filter('bp_trapp_save_mycpt_taxonomies', function($taxonomies) {
$taxonomies[] = 'myct';
return $taxonomies;
});
bp_trapp_locked_field
$return
返回值。$field
当前字段的数组数据
将输入名称传递给js以在编辑帖子视图中禁用这些字段。如果元数据的名称与HTML输出的输入名称不匹配,请使用此过滤器。
/**
* The field '_mycustomfield' is saved from the input[name="mycustomfield_textinput"].
*/
add_filter('bp_trapp_locked_field', function($return, $field) {
if ($field['type'] == 'post_meta' && $field['args']['key'] == '_mycustomfield') {
return 'mycustomfield_textinput';
}
return $return;
}, 12, 2);
bp_trapp_get_{$post_type}_fields
使用此过滤器修改从TRAPP发送和更新的字段。可以用来取消字段、修改标签或添加新字段。
{$post_type}
是一个动态过滤器,并且特定于 {$post_type}
$fields
包含字段的字段组数组
/**
* Change the "Post Thumbnail" to "Main Image"
*/
add_filter('bp_trapp_get_mycpt_fields', function($fields) {
if (array_key_exists('post_thumbnail', $fields)) {
$fields['post_thumbnail']['title'] = 'Main Image';
foreach ($fields['post_thumbnail']['fields'] as $key => $field) {
$fields['post_thumbnail']['fields'][$key]['label'] = str_replace('Post Thumbnail', 'Main Image', $field['label']);
}
}
});
/**
* Extend TRAPP with my field group.
*/
add_filter('bp_trapp_get_mycpt_fields', function($fields) {
$fields['my_field_group'] = [
'title' => 'My field group',
'fields' => [
'title' => [
'label' => 'My field group title',
'args' => [
'key' => 'mfg_title'
],
'type' => 'post_meta',
],
'text' => [
'label' => 'My field group text',
'args' => [
'key' => 'mfg_teaser_text'
],
'type' => 'post_meta',
],
],
];
});
/**
* Extend TRAPP with my image field group.
*/
add_filter('bp_trapp_get_mycpt_image_fields', function($fields) {
$fields['my_image_field_group'] = [
'title' => 'My Image',
'fields' => [
'display_image' => [
'label' => 'My image Url',
'args' => [
'image_key' => 'mifg_image',
],
'type' => 'image_display',
'display_format' => 'image',
],
'title' => [
'label' => 'My image Title',
'args' => [
'image_key' => 'mifg_image',
'key' => 'post_title'
],
'type' => 'image_wp_post',
],
'alt' => [
'label' => 'My image Alt',
'args' => [
'image_key' => 'mifg_image',
'key' => '_wp_attachment_image_alt'
],
'type' => 'image_post_meta',
],
],
];
});
bp_trapp_save_images
添加应在翻译帖子时保存的图像。
$images
包含图像数据的图像数组$postId
帖子ID
add_filter('bp_trapp_save_images', function($images, $postId) {
$secondaryImage = get_post_meta($postId, 'secondary_image', true);
if ($secondaryImage) {
$images['secondary_image'] = [
'id' => $secondaryImage,
'post' => get_post($secondaryImage),
'type' => 'meta',
'key' => 'secondary_image',
];
}
return $images;
}, 10, 2);
bp_trapp_after_save_post_image
在翻译的图像已保存后执行某些操作。
$translationImageId
翻译ID$image
从翻译的图像数据数组
示例
/**
* Add metadata to new translated image from the master image.
*/
add_action('bp_trapp_after_save_post_image', function($translationImageId, $image) {
add_post_meta($translationImageId, 'custom_seo_field', get_post_meta($image['id'], 'custom_seo_field', true));
}, 10, 2);