Używasz wysokiej jakości pluginu wielojęzycznego, np. WPML, Weglott, Polyglot lub innego, i skonfigurowałeś ustawienia języka, by korzystać z niestandardowych folderów z kodem języka, np. yourdomain.com/en/?
Możesz napotkać problem, w którym otwarcie strony na witrynie staging kończy się błędem 404. Może się tak zdarzyć, jeśli permalinki witryny staging są wyłączone.
Contents
Opcja 1: Utwórz witrynę staging w subdomenie
Możesz sklonować witrynę WordPress do subdomeny. W ten sposób nie napotkasz już problemów ze strukturą linków, ponieważ struktura URL odzwierciedla strukturę URL witryny produkcyjnej.
Opcja 2: Zmień format URL języka WPML
Możesz przełączyć ustawienia języka WPML na witrynie staging WP Staging na język oparty na URL, np. yourdomain.com/staging-site?lang=en
Możesz to zmienić w WPML > Languages.
Uwaga: Jeśli wykonasz push witryny staging z powrotem na żywą, zaleca się cofnięcie tego ustawienia na witrynie staging przed push, aby nie zmienić struktury permalinków na żywej witrynie.
Opcja 3: Włącz permalinki Post Name
Możesz spróbować włączyć permalinki post name na witrynie staging, postępując zgodnie z tym artykułem.
Opcja 4: Tworzenie witryny staging z różnymi domenami na język
Załóżmy, że masz żywą witrynę z domeną „example.com” dla wersji angielskiej, „example.fr” dla francuskiej i „example.de” dla niemieckiej, i chcesz utworzyć klony tych witryn na staging.example.com, staging.example.fr i staging.example.de.
Musisz użyć tego fragmentu kodu jako mu-plugin: (zmodyfikuj go, aby dopasować do swoich domen):
function wpstg_cloning_custom_params($args)
{
$args['search_for'] = array_merge(
$args['search_for'],
['example.fr', 'example.fr']
);
$args['replace_with'] = array_merge(
$args['replace_with'],
['staging.example.fr', 'staging.example.de']
);
return $args;
}
add_filter('wpstg_clone_searchreplace_params', 'wpstg_cloning_custom_params'); Następnie utwórz witrynę staging na subdomenie „staging.example.com”, postępując zgodnie z tym przewodnikiem. Subdomena musi oczywiście zostać najpierw utworzona w panelu kontrolnym Hostingu.
Nie zapomnij skierować tych nowych subdomen (staging.example.fr, staging.example.de) na IP głównej witryny staging w menedżerze DNS domeny.
Zachowaj klucz licencyjny WPML po push witryny staging na żywą
Jeśli chcesz zachować dane licencji WPML żywej witryny i nie nadpisać ich danymi z witryny staging po procesie push, możesz utworzyć plik mu-plugin i dodać do niego ten fragment kodu:
<?php
/*
Plugin Name: mu-plugin to keep the WPML license of the live site
Description: After you push the staging site to the live site, the live site's WPML license won't change
Version: 1.0
Author: WPSTAGING
*/
function wpstg_push_preserve_options($options){
$preserveOptions = ['wp_installer_settings'];
return array_merge($options, $preserveOptions );
}
add_filter('wpstg_preserved_options','wpstg_push_preserve_options');Następnie wykonaj push witryny staging na żywą, a zachowasz ten sam klucz licencyjny WPML i nie zostanie on nadpisany.
Opcje rozwiązywania problemów WPML
Po push lub sklonowaniu witryny WordPress przez WP Staging tłumaczenia WPML mogą nie działać zgodnie z zamierzeniem. Często jest to spowodowane wewnętrznym zarządzaniem cache w WPML. Na szczęście WPML oferuje kilka mocnych opcji rozwiązywania problemów, dzięki którym możesz wyczyścić i odświeżyć cache WPML.
Informacje na tej stronie są dla zaawansowanych użytkowników WPML. Jeśli nie masz pewności, co zrobić, skontaktuj się ze wsparciem WPML przed wykonaniem jakichkolwiek opcji rozwiązywania problemów WPML.
Stronę rozwiązywania problemów WPML otworzysz z WPML > Support.
Kliknij link troubleshooting.

Wykonaj Backup witryny WordPress przed uruchomieniem dowolnej akcji z tej strony opcji.

W poniższej tabeli widzisz opis najważniejszych poleceń i możliwych scenariuszy użycia:
| Polecenie | Kiedy go użyć |
| Wyczyść cache w WPML |
|
| Usuń wpisy-duchy z tabel tłumaczeń |
|
| Napraw collation element_type |
|
| Napraw collation tabel WPML |
|
| Ustaw informacje o języku |
|
| Wyczyść i zoptymalizuj tabele stringów |
|
Źródło:
https://wpml.org/documentation/support/wpml-troubleshooting-options/