- Status
- Gelöst
- Gemeldet für
- WPML Multilingual CMS 3.1.9.5
- Gelöst in
- 3.1.9.7
Übersicht über das Problem
- Gehen Sie zum Menü und erstellen Sie eines in der Standardsprache.
- Versuchen Sie, das Menü in der Sekundärsprache zu erstellen.
- Nach dem Speichern erhalten Sie einen 404-Fehler.
Problemumgehung
Dieses Problem wurde in WPML 3.1.9.7 behoben
Sie sollten auf die aktuelle WPML-Version aktualisieren, um das Problem zu beheben.
Wenn Sie WPML nicht aktualisieren möchten oder können, befolgen Sie bitte diese Anweisungen:
- Laden Sie die aktualisierte Version von iclNavMenu.class.php herunter.
- Verwenden Sie sie als Ersatz für
sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php:
Höchstwahrscheinlich bedeutet dies, dass Sie Ihren FTP-Client verwenden und die Datei insitepress-multilingual-cms/inc/wp-nav-menushochladen sollten: Wenn Sie gefragt werden, ob Sie die bestehende Datei überschreiben möchten, tun Sie dies einfach.
Bei Problemen
Falls eines dieser Probleme bei Ihnen auftritt:
Fatal error: Call to undefined method SitePress::get_setting() in /wp-content/plugins/sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php on line 121PHP Fatal error: Call to undefined function wpml_prepare_in() in /wp-content/plugins/sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php on line 548- Eine weiße/leere Seite
Führen Sie diese Schritte aus:
- Gehen Sie zu „WPML“ -> „Support“.
- Klicken Sie auf „Debug-Informationen“: Sie sehen ein graues Textfeld mit vielen Informationen (es handelt sich um ein JSON-Objekt).
- Kopieren Sie den Inhalt des Textfelds in eine Textdatei und benennen Sie diese Datei nach Belieben: Es ist besser, wenn Sie die Erweiterung „json“ verwenden, dies ist jedoch nicht zwingend erforderlich.
- Erstellen Sie einen neuen WordPress-Benutzer mit Admin-Rechten, damit wir das Problem untersuchen können.
- Installieren Sie das kostenlose Plugin „Duplicator“ (hier).
Sie können ein anderes Plugin verwenden, wenn Sie möchten, aber die folgenden Anweisungen beziehen sich speziell auf Duplicator (obwohl sie leicht für andere Plugins angepasst werden können). - Erstellen Sie ein neues Paket:
- Gehen Sie zu „Duplicator“ -> „Pakete“.
- Klicken Sie auf „Neu erstellen“.
- Fahren Sie mit dem Assistenten fort und belassen Sie alle Standardeinstellungen (wenn Sie möchten, können Sie einige Dateien ausschließen, die Ihrer Meinung nach nicht benötigt werden oder die das Paket zu groß machen würden, wie z. B. die Dateien im Ordner „uploads“).
- Sobald der Snapshot bereit ist, laden Sie sowohl die Datei „installer“ als auch die Datei „package“ herunter.
- Erstellen Sie einen Ordner und fügen Sie die Dateien aus Schritt 3 und 6.4 hinzu (d. h. die Textdatei mit den Debug-Informationen, den Installer und das Paket).
- Komprimieren Sie diesen Ordner als ZIP-Datei und laden Sie ihn auf Google Drive, Dropbox oder einem ähnlichen Dienst hoch (oder laden Sie den gesamten Ordner unkomprimiert hoch und geben Sie ihn frei).
- Gehen Sie zu unserem Support-Forum und erstellen Sie ein Support-Ticket mit dem folgenden Titel „Probleme mit der Problemumgehung – Das Speichern von Menüs in einer Nicht-Standardsprache führt zu einem 404-Fehler“: Wir werden Sie bitten, die in Schritt 8 gespeicherten Dateien privat freizugeben.
Wenn Sie eine zu alte Version von WPML verwenden, funktioniert diese Problemumgehung möglicherweise nicht.
In these cases, you may get a white page, or this errors: PHP Fatal error: Call to undefined function wpml_prepare_in()
Um diesen spezifischen Fehler zu beheben, führen Sie bitte die folgenden Schritte aus:
Öffnen Sie'wp-content/plugins/sitepress-multilingual-cms/inc/functions.php'
und suchen Sie nachwpml_prepare_in
.- Wenn Sie dies nicht finden können, fügen Sie Folgendes am Ende der Datei hinzu:
function wpml_prepare_in( $items, $format = '%s' ) { global $wpdb; $items = (array) $items; $how_many = count( $items ); if ( $how_many > 0 ) { $placeholders = array_fill( 0, $how_many, $format ); $prepared_format = implode( ",", $placeholders ); $prepared_in = $wpdb->prepare( $prepared_format, $items ); } else { $prepared_in = ""; } return $prepared_in; }