Dostosuj permalinki dla każdego języka w WordPressie
Jak dostosować permalinki dla różnych języków w WordPressie;
Wielojęzyczna struktura permalinków w WordPressie;
Stwórz niestandardowe permalinki dla każdego języka w WordPressie;
Permalinki WordPressa dla wielu języków;
Skonfiguruj permalinki specyficzne dla języka w WordPressie;
Niestandardowe permalinki WordPressa według języka;
Jak przetłumaczyć permalinki w WordPressie;
Kod języka WordPressa w permalinkach;
Konfiguracja wielojęzycznych permalinków w WordPressie;
Permalinki WordPressa dla wersji językowych;
Objaśnienie
Aby dostosować permalinki dla różnych języków w WordPressie, ten kod pomoże Ci skonfigurować adresy URL specyficzne dla języków dla Twoich postów i stron. Oto jak to działa:
- Język w permalinkach: Kod sprawdza, czy post ma ustawiony język za pomocą pola niestandardowego. Jeśli tak, dodaje kod języka do adresu URL, co sprawia, że wygląda on jak twojastrona.pl/en/nazwa-postu/.
- Reguły przepisywania: Tworzy reguły, dzięki którym WordPress wie, jak obsługiwać te nowe adresy URL. Możesz określić, które języki obsługujesz, dodając ich kody (takie jak 'en', 'fr', 'de') w kodzie.
- Zmienne zapytania: Kod dodaje zmienną 'language' do systemu zapytań WordPressa, co pozwala mu rozpoznawać i filtrować treści na podstawie języka w adresie URL.
- Filtrowanie treści: Gdy WordPress pobiera posty, sprawdza zmienną językową i wyświetla tylko te posty, które odpowiadają językowi w adresie URL.
- Odświeżanie permalinków: Kod zapewnia, że WordPress aktualizuje swoją strukturę permalinków, gdy wtyczka jest aktywowana lub dezaktywowana, dzięki czemu Twoje nowe adresy URL działają poprawnie.
Ta konfiguracja pozwala na posiadanie schludnych, specyficznych dla języka adresów URL dla Twojej wielojęzycznej strony, poprawiając zarówno doświadczenia użytkowników, jak i SEO.
Kod
<?php
// Add custom permalinks for different languages in WordPress
function wp_dudecom_custom_language_permalinks( $permalink, $post, $leavename ) {
// Check if the post has a language set
$language = get_post_meta( $post->ID, 'language', true );
if ( $language ) {
// Append the language code to the permalink
$permalink = home_url( '/' . $language . '/' . $post->post_name . '/' );
}
return $permalink;
}
add_filter( 'post_link', 'wp_dudecom_custom_language_permalinks', 10, 3 );
add_filter( 'page_link', 'wp_dudecom_custom_language_permalinks', 10, 3 );
// Add rewrite rules for language-specific permalinks
function wp_dudecom_add_language_rewrite_rules() {
$languages = array( 'en', 'fr', 'de' ); // Add your supported languages here
foreach ( $languages as $language ) {
add_rewrite_rule(
'^' . $language . '/([^/]+)/?$',
'index.php?name=$matches[1]&language=' . $language,
'top'
);
}
}
add_action( 'init', 'wp_dudecom_add_language_rewrite_rules' );
// Add query vars for language
function wp_dudecom_add_language_query_vars( $vars ) {
$vars[] = 'language';
return $vars;
}
add_filter( 'query_vars', 'wp_dudecom_add_language_query_vars' );
// Modify the main query to filter by language
function wp_dudecom_filter_query_by_language( $query ) {
if ( ! is_admin() && $query->is_main_query() && $language = get_query_var( 'language' ) ) {
$meta_query = array(
array(
'key' => 'language',
'value' => $language,
'compare' => '='
)
);
$query->set( 'meta_query', $meta_query );
}
}
add_action( 'pre_get_posts', 'wp_dudecom_filter_query_by_language' );
// Ensure permalinks are flushed on activation
function wp_dudecom_flush_rewrite_rules() {
wp_dudecom_add_language_rewrite_rules();
flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'wp_dudecom_flush_rewrite_rules' );
// Ensure permalinks are flushed on deactivation
function wp_dudecom_deactivate_plugin() {
flush_rewrite_rules();
}
register_deactivation_hook( __FILE__, 'wp_dudecom_deactivate_plugin' );
?>
Instrukcja
Aby wdrożyć kod do dostosowywania permalinków dla każdego języka w WordPressie, wykonaj następujące kroki:
Lokalizacja pliku: Dodaj kod do pliku functions.php
swojego motywu lub stwórz plik własnej wtyczki.
Wymagania wstępne:
- Upewnij się, że masz pole niestandardowe o nazwie 'language' dla każdego wpisu/strony, aby przechować kod języka (np. 'en', 'fr', 'de').
- Podstawowa znajomość dostępu do plików WordPressa i ich edytowania.
Kroki wdrożenia:
- Dostęp do plików WordPressa: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby uzyskać dostęp do instalacji WordPressa.
- Znajdź plik: Przejdź do
wp-content/themes/twoj-motyw/functions.php
lub stwórz nowy plik wtyczki wwp-content/plugins/
. - Dodaj kod: Skopiuj i wklej podany kod do wybranego pliku.
- Zapisz zmiany: Zapisz plik i upewnij się, że nie ma błędów składniowych.
- Odśwież permalink: Przejdź do swojego panelu WordPress, przejdź do Ustawienia > Permalinki i kliknij Zapisz zmiany, aby odświeżyć zasady przepisywania.
- Przetestuj konfigurację: Utwórz lub edytuj wpis/stronę, ustaw pole niestandardowe 'language' i sprawdź, czy adres URL odzwierciedla kod języka (np. twojastrona.com/en/nazwa-wpisu/).
Jeśli potrzebujesz pomocy przy wdrożeniu lub wymagasz bardziej zaawansowanej funkcjonalności, rozważ skorzystanie z usług wp-dude.com.