apply_filters( 'wpml_duplicate_generic_string', string $value_to_filter, string $target_language, array $meta_data )
- Typ
- filter
- Kategorie
- Sonstiges
- WPML-Version
- 3.2
Beschreibung
WPML wendet diesen Hook-Filter auf die Werte benutzerdefinierter Felder, den Beitragsinhalt, den Beitragstitel und den Beitragsauszug an, wenn ein WordPress-Beitragstyp dupliziert wird und bevor die Daten in der Datenbank gespeichert werden. Auf diese Weise werden die Daten externen Themes und Plugins zum Filtern zur Verfügung gestellt.
Argumente
- $value_to_filter
- (string) (Erforderlich) Der zu filternde Daten-String
- $target_language
- (string) (Optional) Der Code der Zielsprache
- $meta_data
- (array) (Optional) Siehe Details unten:
- context(string) Der Datenkontext. Auf „custom_field“ setzen, wenn der Wert zu einem benutzerdefinierten Feld gehört, und auf „post“ für alle anderen Fälle (Beitragstitel, Inhalt oder Auszug)
- attribute(string) Auf Folgendes setzen: „value“ für benutzerdefinierte Felder, „content“ für Beitragsinhalte, „title“ für Beitragstitel, „excerpt“ für Beitragsauszüge
- key(string) Der
$post_meta->meta_key, wenn der Filter auf Werte von benutzerdefinierten Feldern angewendet wird. Andernfalls die ID des Originalbeitrags, der als Master für die Duplizierung dient - $is_serialized(bool) Wird nur für Daten von benutzerdefinierten Feldern übergeben.
true|falseGibt an, ob die Daten serialisiert sind. Dies ermöglicht es, den Wert bei Bedarf zu deserialisieren. - post_id(int) Wird nur für Daten von benutzerdefinierten Feldern übergeben. Die ID des Beitrags, der dupliziert wird
- master_post_id(int) Wird nur für Daten von benutzerdefinierten Feldern übergeben. Die ID des Originalbeitrags, der als Master für die Duplizierung dient
Anwendungsbeispiel
Ein einfaches Beispiel
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 );
Verwandte Hooks
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