WPML
Status
Offen
Gemeldet für
WPML Multilingual CMS 4.6.0
Themen-Tags
Compatibility, Feature request

Übersicht über das Problem

Wenn Sie Ihre nativen benutzerdefinierten Felder in WordPress übersetzen, müssen Sie möglicherweise Ihre Übersetzungseinstellungen ändern, wenn sich Ihr Projekt weiterentwickelt. Sie müssen jedoch Ihre Inhalte aktualisieren, damit diese benutzerdefinierten Felder für die Übersetzung im Erweiterten Übersetzungs-Editor verfügbar sind.

Obwohl dies zu erwarten ist, verstehen wir vollkommen, dass dies nicht wünschenswert ist, insbesondere wenn Sie eine große Website haben und Ihre Übersetzungen weit fortgeschritten sind.

Hinweis: Seit Advanced Custom Field Multilingual 2.0 ist dies für ACF-Felder nicht mehr der Fall, da es die Inhaltssignatur für alle Beiträge neu berechnet und die Erstellung neuer Übersetzungsaufträge erzwingt.

Problemumgehung

Bitte erstellen Sie unbedingt ein vollständiges Backup Ihrer Website, bevor Sie fortfahren.

Hinweis: Beachten Sie, dass diese benutzerdefinierten Felder automatisch übersetzt werden, wenn Sie unsere Funktion Alles übersetzen verwenden.

  1. Fügen Sie das folgende Snippet in Ihre Datei functions.php ein und denken Sie daran, diese beiden Werte durch Ihre eigenen zu ersetzen.
    • Name des Beitragstyps: post
    • Name des benutzerdefinierten Feldes: simple_field
      add_action('wp', function(){
          $config = [
              'post_type' => 'post', //Post type slug
              'meta_key_name' => 'simple_field' //Custom field key
          ];
         
          if (!isset($_GET['wpml_sync'])) {
              return;
          }
         
          set_time_limit(0);
          do_action('wpml_switch_language', apply_filters( 'wpml_default_language', null ));
          $all_posts = get_posts([
              'post_type' => $config['post_type'],
              'posts_per_page' => -1,
              'suppress_filters' => false
          ]);
         
          if (empty($all_posts)) {
              return;
          }
         
          foreach ($all_posts as $post) {
              do_action( 'wpml_sync_custom_field', $post->ID, $config['meta_key_name'] );
          }
         
          wp_die('Done!');
      });
  2. Besuchen Sie Ihre Website und fügen Sie dies zu Ihrer URL hinzu: /?wpml_sync (z. B.
    https://example.com/?wpml_sync)
  3. Entfernen Sie den Code aus Ihrer Datei.

Alle bekannten Probleme →