Snippet

Przypisz różne wersje językowe do stron i wpisów WordPressa

Snippet z warsztatu WP-Dude: wklejam go na prawdziwych stronach klientów, nie jako suchy gist. Sprawdź PHP i wtyczki na stagingu zanim wrzucisz na produkcję.

Jak stworzyć wielojęzyczną stronę WordPressTłumaczenie postów WordPress na różne językiDodawanie wielu języków do stron WordPressKonfiguracja wtyczki wielojęzycznej WordPressPrzypisywanie różnych języków do postów WordPressKonfiguracja przełącznika języków w WordPressTłumaczenie niestandardowych typów postów WordPressPrzewodnik po wsparciu wielojęzycznym w WordPressKonfiguracja wielojęzycznego bloga WordPressStrona WordPress w wielu językach

Objaśnienie

Aby uczynić swoją stronę WordPress wielojęzyczną, ten kod pomoże Ci przypisać różne języki do Twoich postów i stron. Oto jak to działa:

Niższe kategorie językowe:

  • Kod tworzy nową kategorię o nazwie "Języki", którą możesz wykorzystać do oznaczania swoich postów i stron różnymi językami.
  • To osiąga się poprzez rejestrację niestandardowej taksonomii, co jest po prostu eleganckim sposobem na powiedzenie, że tworzysz nowy sposób kategoryzowania swojej treści.

Przełącznik języków:

  • Na Twojej stronie dodawany jest przełącznik języków, który pozwala odwiedzającym wybrać, w jakim języku chcą przeglądać treść.
  • Ten przełącznik jest wyświetlany jako lista linków, z których każdy reprezentuje inny język.

Shortcode dla przełącznika języków:

  • Możesz łatwo dodać przełącznik języków w dowolnym miejscu na swojej stronie, używając shortcode [language_switcher].
  • Po prostu wklej ten shortcode do dowolnego posta, strony lub obszaru widgetów, w którym chcesz, aby przełącznik się pojawił.

Filtrowanie treści według języka:

  • Kod zawiera również funkcję filtrowania postów na podstawie wybranego języka.
  • Kiedy użytkownik wybierze język, wyświetlane będą tylko posty i strony oznaczone tym językiem.

Ta konfiguracja pozwala zarządzać i wyświetlać treści w wielu językach, co sprawia, że Twoja strona jest dostępna dla szerszej publiczności. Pamiętaj jednak, że będziesz musiał ręcznie przetłumaczyć swoją treść i przypisać odpowiednie tagi językowe do każdego posta lub strony.

Kod

1<?php 2// Function to register a custom taxonomy for languages 3function wp_dudecom_register_language_taxonomy() { 4 $labels = array( 5 'name' => 'Languages', 6 'singular_name' => 'Language', 7 'search_items' => 'Search Languages', 8 'all_items' => 'All Languages', 9 'edit_item' => 'Edit Language', 10 'update_item' => 'Update Language', 11 'add_new_item' => 'Add New Language', 12 'new_item_name' => 'New Language Name', 13 'menu_name' => 'Languages', 14 ); 15 16 $args = array( 17 'hierarchical' => true, 18 'labels' => $labels, 19 'show_ui' => true, 20 'show_admin_column' => true, 21 'query_var' => true, 22 'rewrite' => array('slug' => 'language'), 23 ); 24 25 register_taxonomy('language', array('post', 'page', 'custom_post_type'), $args); 26} 27add_action('init', 'wp_dudecom_register_language_taxonomy'); 28 29// Function to add a language switcher to the site 30function wp_dudecom_language_switcher() { 31 $languages = get_terms(array( 32 'taxonomy' => 'language', 33 'hide_empty' => false, 34 )); 35 36 if (!empty($languages) && !is_wp_error($languages)) { 37 echo '<ul class="language-switcher">'; 38 foreach ($languages as $language) { 39 echo '<li><a href="' . esc_url(get_term_link($language)) . '">' . esc_html($language->name) . '</a></li>'; 40 } 41 echo '</ul>'; 42 } 43} 44 45// Shortcode to display the language switcher 46function wp_dudecom_language_switcher_shortcode() { 47 ob_start(); 48 wp_dudecom_language_switcher(); 49 return ob_get_clean(); 50} 51add_shortcode('language_switcher', 'wp_dudecom_language_switcher_shortcode'); 52 53// Function to filter posts by selected language 54function wp_dudecom_filter_posts_by_language($query) { 55 if (!is_admin() && $query->is_main_query() && (is_post_type_archive() || is_tax('language'))) { 56 if (isset($_GET['language']) && !empty($_GET['language'])) { 57 $query->set('tax_query', array( 58 array( 59 'taxonomy' => 'language', 60 'field' => 'slug', 61 'terms' => sanitize_text_field($_GET['language']), 62 ), 63 )); 64 } 65 } 66} 67add_action('pre_get_posts', 'wp_dudecom_filter_posts_by_language'); 68?>

Instrukcja

Lokalizacja pliku: Dodaj poniższy kod do pliku functions.php swojego motywu lub do pliku niestandardowej wtyczki.

Wymagania wstępne:

  • Upewnij się, że masz dostęp do plików motywu WordPress lub możliwość stworzenia niestandardowej wtyczki.
  • Podstawowa znajomość nawigacji w panelu administracyjnym WordPress.

Kroki wdrożenia:

  1. Dostęp do plików WordPress: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby uzyskać dostęp do instalacji WordPress.
  2. Edytuj plik functions.php: Przejdź do wp-content/themes/nazwa-twojego-motywu/functions.php i otwórz go do edycji. Alternatywnie, stwórz nowy plik niestandardowej wtyczki w wp-content/plugins/ i otwórz go do edycji.
  3. Wklej kod: Skopiuj podany kod i wklej go na końcu swojego pliku functions.php lub w pliku niestandardowej wtyczki.
  4. Zapisz zmiany: Zapisz zmiany w pliku i zamknij edytor.
  5. Zweryfikuj rejestrację taksonomii: Zaloguj się do panelu administracyjnego WordPress, przejdź do Wpisy lub Strony i sprawdź, czy dostępna jest nowa taksonomia "Języki" do kategoryzowania treści.
  6. Dodaj terminy językowe: Przejdź do Wpisy > Języki i dodaj języki, które chcesz używać na swojej stronie.
  7. Przypisz języki do treści: Edytuj swoje wpisy i strony, a następnie przypisz odpowiedni język z taksonomii "Języki".
  8. Użyj przełącznika języków: Dodaj shortcode [language_switcher] do dowolnego wpisu, strony lub obszaru widgetu, w którym chcesz, aby przełącznik języków się pojawił.
  9. Przetestuj filtrowanie językowe: Odwiedź swoją stronę i użyj przełącznika języków, aby upewnić się, że treści są filtrowane poprawnie w zależności od wybranego języka.

W celu uzyskania dalszej pomocy lub zaawansowanej funkcjonalności, rozważ skontaktowanie się z ekspertami z wp-dude.com w celu uzyskania profesjonalnego wsparcia WordPress.