WPML
apply_filters( 'wpml_duplicate_generic_string', string $value_to_filter, string $target_language, array $meta_data )
タイプ
filter
カテゴリー
その他
WPMLバージョン
3.2

説明

WPMLは、WordPressの投稿タイプが複製され、データがデータベースに保存される前に、カスタムフィールドの値、投稿コンテンツ、投稿タイトル、および投稿の抜粋にこのフックフィルターを適用します。これにより、データは外部のテーマやプラグインでのフィルタリングに利用できるようになります。

引数

$value_to_filter
(string) (必須) フィルターを適用するデータ文字列
$target_language
(string) (任意) 翻訳先言語コード
$meta_data
(array) (任意) 詳細は以下のとおりです。
  • context(string) データコンテキスト。値がカスタムフィールドに属する場合は「custom_field」に設定し、それ以外の場合(投稿タイトル、コンテンツ、または抜粋)は「post」に設定します。
  • attribute(string) カスタムフィールドの場合は「value」、投稿コンテンツの場合は「content」、投稿タイトルの場合は「title」、投稿の抜粋の場合は「excerpt」に設定します。
  • key(string) フィルターがカスタムフィールドの値に適用されている場合は$post_meta->meta_key。それ以外の場合は、複製のマスターとなる元の投稿のID。
  • $is_serialized(bool) カスタムフィールドデータの場合にのみ渡されます。true|false データがシリアライズされているかどうかを示します。これにより、必要に応じて値をアンシリアライズできます。
  • post_id(int) カスタムフィールドデータの場合にのみ渡されます。複製される投稿のID。
  • master_post_id(int) カスタムフィールドデータの場合にのみ渡されます。複製のマスターとなる元の投稿のID。

使用例

基本的な例
function my_override_post_duplication( $value_to_filter, $target_language, $meta_data ) {
    $context = $meta_data[ 'context' ];
    if ( $value_to_filter !== '' && $context ) {
        $prefix = '';

        $attribute = $meta_data[ 'attribute' ];
        if ( $context == 'post' ) {
            switch ( $attribute ) {
                case 'content':
                    $prefix = '<h3>' . $target_language . '</h3>';
                    break;
                case 'excerpt':
                    $prefix = $target_language . "nn";
                    break;
                default:
                    $prefix = '[' . $target_language . '] ';
            }
        } elseif ( $context == 'custom_field' && $attribute == 'value' ) {
            $is_serialized = $meta_data[ 'is_serialized' ];
            if ( ! $is_serialized && is_string( $value_to_filter ) && ! is_numeric( $value_to_filter ) ) {
                $prefix = '[' . $target_language . '] ';
            }
        }

        if($prefix) {
            $value_to_filter = $prefix . $value_to_filter;
        }
    }

    return $value_to_filter;
}

add_filter( 'wpml_duplicate_generic_string', 'my_override_post_duplication', 10, 3 );

icl_ls_languages, wpml_sync_custom_field_copied_value, wpml_ls_enable_ajax_navigation, wpml_element_type, wpml_setting, wpml_sub_setting, wpml_exclude_post_from_auto_translate, wpml_forms_config_ninja-forms, wpml_forms_config_wpforms, wpml_tf_feedback_open_link

すべてのその他フック(30件) →