Masalah Umum
Masalah UmumPolylang berperilaku buruk

Polylang berperilaku buruk

Saat menggunakan ekstensi Polylang, dan Anda memperhatikan masalah berikut ketika mengambil data menggunakan GraphQL dari endpoint publik:

  • Polylang tidak mendeteksi bahasa saat ini dengan benar untuk permintaan GraphQL
  • Konten khusus bahasa tidak difilter dengan benar
  • Anda mendapatkan konten dalam bahasa yang salah atau tidak ada konten sama sekali

...dan Anda telah melakukan salah satu dari hal berikut di Gato GraphQL:

  • Memperbarui path dari GraphQL Single Endpoint
  • Memperbarui slug dasar dari Custom Endpoints atau Persisted Queries
  • Menonaktifkan endpoint apa pun (dengan menonaktifkan modul yang sesuai)

...maka Anda harus menerapkan modifikasi yang sama melalui hook, untuk menghindari konflik.

Mengapa ini terjadi

Ada konflik timing antara inisialisasi Polylang dan pengaturan service container Gato GraphQL.

Polylang menetapkan filter pll_model dan pll_context selama proses inisialisasinya. Karena Gato GraphQL belum diinisialisasi, ia tidak dapat mengambil path endpoint yang benar dari database, untuk menentukan apakah permintaan berasal dari endpoint GraphQL dan mengganti model serta konteks dengan yang benar (PLL_Admin_Model dan PLL_Admin masing-masing).

Solusi sementara

Ketika Polylang menetapkan filter pll_model dan pll_context, Gato GraphQL mengasumsikan path default untuk endpoint GraphQL.

Kemudian, jika Anda mengubah path endpoint publik apa pun melalui Pengaturan plugin, Anda harus menerapkan modifikasi yang sama melalui hook.

Baca panduan Mereplikasi pembaruan path endpoint GraphQL melalui hooks untuk solusinya.