benjaminmedia/wp-trapp

此软件包最新版本(dev-master)没有提供许可证信息。

将内容发送到TRAPP翻译服务。

安装: 142

依赖关系: 0

建议者: 0

安全: 0

星级: 1

关注者: 10

分支: 1

开放问题: 0

类型:wordpress-plugin

dev-master 2016-10-26 07:05 UTC

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);