Dies ist das technische Support-Forum für WPML - das mehrsprachige WordPress-Plugin.

Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team beantwortet Anfragen im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.

This topic contains 5 Antworten, has 2 Teilnehmer.

Last updated by Cristina vor 1 Jahr, 5 Monate.

Assigned support staff: Cristina.

Autor Beiträge
Mai 3, 2018 um 12:04 pm #1956609

Carsten Schmitt

Hallo,

Ich versuche derzeit unser Plugin (indiebooking) für WPML kompatibel zu machen.
Nachfolgend nun kurz die Beschreibung was ich versuche und was aktuell aber passiert:

- ich habe verschiedene Apartments (angelegt als custom post type), die ich bspw. in Englisch und Französisch übersetzt habe. (Standardsprache ist Deutsch)

- diese Apartments zeige ich in einer Liste an. Außerdem kann diese Liste bspw. nach Zeiträumen gefiltert werden.

- Wenn ich mir diese Liste nun anzeigen lasse (bspw. in Englisch), werden mir die Englischen Apartments angezeigt, außer das Apartment wurde nicht übersetzt, dann wird auf die Deutsche Sprache (Standard) zurückgegriffen und mir wird entsprechend das Deutsche Apartment angezeigt. (Siehe Screenshot 1)

- Klicke ich nun (ohne Angabe weiterer Filter) auf den "Suchen" Button, wird das gleiche WP_Query im Hintergrund ausgeführt, jedoch bekomme ich nun nur das übersetzte Apartment angezeigt.
Nutze ich den Parameter "suppress_filters" und setze diesen auf "true", bekomme ich alle
Übersetzungen des nicht in englisich verfügbaren Apartments zurück. (Siehe Screenshot 2)

Erwartet habe ich jedoch, dass wie auf Screenshot 1 lediglich das Englische Apartment, als auch das in der Standardsprache verfügbare Apartment 1 angezeigt wird.

Das Problem scheint also ausschließlich bei AJAX-Abfragen aufzutreten.

Für den Apartment Custom Post Type habe ich im WPML Translation Management die Einstellung "Translatable - use translation if available or fallback to default language" ausgewählt.

Außerdem habe ich den "language cookie" für Ajax abfragen aktiviert.

Mein WP_Query sieht folgendermaßen aus:
$args = array(
'post_type' => 'rsappartment',
'post_status' => 'publish',
'posts_per_page' => -1,
'ignore_sticky_posts' => 1,
'orderby' => 'title',
'order' => 'ASC',
//'suppress_filters' => true
);
$my_query = new WP_Query($args);

Danke schon mal.

Beste Grüße,
Carsten

Mai 3, 2018 um 4:28 pm #1963079

Cristina

Hallo Carsten,

vielen Dank für die Anfrage, ich habe das Problem verstanden, aber ich weiss jetzt nicht, ob das nicht doch damit zusammenhängen könnte, dass die native WordPress Suche anders sucht.

Die Query fragt nach Posts ab und zeigt sie in einer Index-Seite an, so dass hier die Fallback-Language korrekt erfolgt, weil WPML diese Index-Ergebnis-Seite steuert.

Die WordPress Suchergebnisse sind anders, weil hier WordPress steuert, in den Titeln und Texten sucht und dabei entweder einen Sprachparameter anhängt oder nach Verzeichnissen filtert.

Wenn hier der Filter ausgesetzt wird, könnte eventuell der native WordPress Filter mit ausgeschaltet werden, der normalerweise die Ergebnisse nach Verzeichnissen trennen würde, indem es einen Filter nutzt.

In dem Fall müsste man evtl., bevor die WordPress Suche in dem gleichen Set/Seite ausgeführt wird, den "surpress-filters" wieder freigeben, damit WP filtern kann.

Da ich aber so etwas nur vermuten kann, würde ich lieber die Kollegen um Feedback bitten.
Wäre es möglich, uns das Plugin zur Verfügung zu stellen, um das zu analysieren?

Ich aktiviere die private Antwortoption, damit Sie uns entweder das Plugin verlinken, oder einen Datei mit dem genauen Script, das hier genutzt wird.

MfG,
Cristina

Mai 10, 2018 um 12:29 pm #2071176

Cristina

Hallo Carsten,

erstmal vielen Dank für die Beschreibung und das Plugin, ich konnte das alle korrekt nachvollziehen und habe für die Kollegen die Testseite eingerichtet.

Ich warte jetzt noch auf Feedback dazu.

MfG,
Cristina

Mai 10, 2018 um 1:14 pm #2072272

Cristina

Hallo Carsten,

jetzt habe ich Feedback bekommen.

Das Ajax Problem ist bekannt und wird in Version 4.0 geändert werden.

Dann wird es eine Klasse geben, die Ajax-Anfragen im Frontend filtert und das "admin=true" - Ergebnis aufhebt. Das Problem mit den falschen Ergebnissen sollte dann nicht mehr auftreten.

Eine Betaversion von WPML 4.0 wird in Kürze im Downloadbereich verfügbar sein.

Der Kollege meinte, Sie könnten auch einen Filter aus unseren WPML Hooks nutzen:
https://wpml.org/documentation/support/wpml-coding-api/wpml-hooks-reference

Haben Sie mit diesem Plugin noch ein weiteres Problem?

Wenn es sich bei dem Plugin um ein kommerzielles Plugin handelt, können Sie sich nach einer Veröffentlichung für das Go Global Programm registrieren, damit es von dem Kompatibilitäts Team getestet wird. Nicht-öffentliche Projekt sind davon ausgeschlossen.

MfG,
Cristina

Mai 14, 2018 um 10:07 am #2115229

Carsten Schmitt

Hallo Cristina, vielen Dank für die Antwort. Gibt es einen Release-Plan für das nächste Update? Also wann die Version 4.0.0 erscheint?

Und welchen Filter soll ich denn für die Lösung aktuell nutzen? Den Filter 'wpml_should_use_display_as_translated_snippet' habe ich ja bereits versucht (und er scheint auch zu funktionieren). Hat Ihr Kollege sich meine Lösung mit dem Filter angesehen?

Mfg
Carsten

Mai 15, 2018 um 4:26 pm #2144415

Cristina

Hallo Carsten,

die Beta-Version ist für Ende der Woche vorgesehen, (wenn nichts dazwischen kommt). Der Release wird dann folgen, aber das kann jetzt noch niemand genau datieren.

Was den Filter betrifft, so ist es wahr, dass "display as translated" nicht korrekt funktioniert, wenn admin=true ist. Da scheint der benutzte Workaround eine gute Lösung zu sein.

Die Kollegen basteln gerade an einer Lösung in einer vergleichbaren Situation, und das wird so umständlich, dass es in Ihrem Fall besser ist, diesen Hook zu nutzen, um den Filter zu überschreiben. Probleme sollte es dabei nicht geben.

MfG,
Cristina

Das Thema „[Geschlossen] Ajax – Fallback auf Standardsprache funktioniert nicht wie erwartet“ ist für neue Antworten geschlossen.