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

Jak stworzyć wielojęzyczną stronę WordPress; Tłumaczenie postów WordPress na różne języki; Dodawanie wielu języków do stron WordPress; Konfiguracja wtyczki wielojęzycznej WordPress; Przypisywanie różnych języków do postów WordPress; Konfiguracja przełącznika języków w WordPress; Tłumaczenie niestandardowych typów postów WordPress; Przewodnik po wsparciu wielojęzycznym w WordPress; Konfiguracja wielojęzycznego bloga WordPress; Strona 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

<?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:

  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.