- Status
- Warten auf Autor
- Zugehöriges Plugin/Theme
- WP Grid Builder
- Themen-Tags
- Compatibility
Übersicht über das Problem
Bei der Verwendung von Grid Builder mit WPML und Advanced Custom Fields (ACF) gibt es ein Problem mit Facets, die benutzerdefinierte Felder verwenden. Obwohl die Labels der ACF-Felder im Backend übersetzt werden, werden sie im Frontend nicht übernommen.
Problemumgehung
Bitte stellen Sie sicher, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.
Für Select-Felder
- Öffnen Sie die Datei functions.php Ihres Themes.
- Fügen Sie den folgenden Code hinzu:
// WPML Workaround for wpmlsupp-11647 function wpml_wpmlsupp11647_translate_facet_choices( $choices, $facet ) { if ( class_exists('Sitepress') ) { foreach ($choices as &$choice) { $string = $choice->facet_name; $textdomain = 'facets'; $string_name = 'Facet: '.substr($string, 0, 20); if ( apply_filters('wpml_default_language', NULL ) == apply_filters( 'wpml_current_language', NULL )) { do_action( 'wpml_register_single_string', $textdomain, $string_name, $string ); } // Apply the translation to the string $choice->facet_name = apply_filters('wpml_translate_single_string', $string , $textdomain, $string_name); } } return $choices; } add_filter( 'wp_grid_builder/facet/choices', 'wpml_wpmlsupp11647_translate_facet_choices', 10, 2 ); - Besuchen Sie die Seite mit den Facets in der Originalsprache, um die Strings zu registrieren.
- Gehen Sie zur Seite WPML > String-Übersetzung und übersetzen Sie die Strings.
Hinweis: Je nachdem, wie Ihre Facets erstellt wurden, kann dieses andere Snippet hilfreich sein:
// WPML Workaround for compsupp-7453
function wpml_compsupp7453_translate_facet_block_custom_field( $output ) {
if ( class_exists('Sitepress') ) {
if( is_string($output) ) {
$string = $output;
$textdomain = 'facets';
$string_name = 'Facet: '.substr($string, 0, 20);
if ( apply_filters('wpml_default_language', NULL ) == apply_filters( 'wpml_current_language', NULL )) {
do_action( 'wpml_register_single_string', $textdomain, $string_name, $string );
}
// Apply the translation to the string
$output = apply_filters('wpml_translate_single_string', $string , $textdomain, $string_name);
}
}
return $output ;
}
add_filter( 'wp_grid_builder/block/custom_field', 'wpml_compsupp7453_translate_facet_block_custom_field', 99, 2 );