Przypisz różne wersje językowe do stron i wpisów WordPressa
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
<?php
// Function to register a custom taxonomy for languages
function wp_dudecom_register_language_taxonomy() {
$labels = array(
'name' => 'Languages',
'singular_name' => 'Language',
'search_items' => 'Search Languages',
'all_items' => 'All Languages',
'edit_item' => 'Edit Language',
'update_item' => 'Update Language',
'add_new_item' => 'Add New Language',
'new_item_name' => 'New Language Name',
'menu_name' => 'Languages',
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'language'),
);
register_taxonomy('language', array('post', 'page', 'custom_post_type'), $args);
}
add_action('init', 'wp_dudecom_register_language_taxonomy');
// Function to add a language switcher to the site
function wp_dudecom_language_switcher() {
$languages = get_terms(array(
'taxonomy' => 'language',
'hide_empty' => false,
));
if (!empty($languages) && !is_wp_error($languages)) {
echo '<ul class="language-switcher">';
foreach ($languages as $language) {
echo '<li><a href="' . esc_url(get_term_link($language)) . '">' . esc_html($language->name) . '</a></li>';
}
echo '</ul>';
}
}
// Shortcode to display the language switcher
function wp_dudecom_language_switcher_shortcode() {
ob_start();
wp_dudecom_language_switcher();
return ob_get_clean();
}
add_shortcode('language_switcher', 'wp_dudecom_language_switcher_shortcode');
// Function to filter posts by selected language
function wp_dudecom_filter_posts_by_language($query) {
if (!is_admin() && $query->is_main_query() && (is_post_type_archive() || is_tax('language'))) {
if (isset($_GET['language']) && !empty($_GET['language'])) {
$query->set('tax_query', array(
array(
'taxonomy' => 'language',
'field' => 'slug',
'terms' => sanitize_text_field($_GET['language']),
),
));
}
}
}
add_action('pre_get_posts', 'wp_dudecom_filter_posts_by_language');
?>
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:
- 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.
- Edytuj plik
functions.php
: Przejdź dowp-content/themes/nazwa-twojego-motywu/functions.php
i otwórz go do edycji. Alternatywnie, stwórz nowy plik niestandardowej wtyczki wwp-content/plugins/
i otwórz go do edycji. - Wklej kod: Skopiuj podany kod i wklej go na końcu swojego pliku
functions.php
lub w pliku niestandardowej wtyczki. - Zapisz zmiany: Zapisz zmiany w pliku i zamknij edytor.
- 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.
- Dodaj terminy językowe: Przejdź do Wpisy > Języki i dodaj języki, które chcesz używać na swojej stronie.
- Przypisz języki do treści: Edytuj swoje wpisy i strony, a następnie przypisz odpowiedni język z taksonomii "Języki".
- 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ł. - 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.