Ukryj nieprzetłumaczone posty w WordPressie dla lepszego doświadczenia użytkownika

Jak ukryć nieprzetłumaczone posty w WordPressie; Wyklucz nieprzetłumaczone posty z witryny WordPress; Ukryj posty bez tłumaczenia w WordPressie; Zapobiegaj wyświetlaniu nieprzetłumaczonych postów w WordPressie; WordPress ukryj posty, które nie są przetłumaczone; Usuń nieprzetłumaczone posty z strony kategorii WordPress; WordPress wyklucz posty bez tłumaczenia; Ukryj nieprzetłumaczoną treść w WordPressie; WordPress nie wyświetlaj nieprzetłumaczonych postów; Jak wykluczyć posty, które nie są przetłumaczone w WordPressie;

Objaśnienie

Jeśli chcesz ukryć posty, które nie zostały przetłumaczone na język, w którym przeglądają Twoi odwiedzający, ten kod jest dla Ciebie. Działa on poprzez sprawdzenie, który język jest aktualnie aktywny na Twojej stronie, a następnie wyświetla tylko te posty, które zostały przetłumaczone na ten język.

Jak to działa:

  • Kod łączy się z systemem zapytań WordPressa, który odpowiada za pobieranie postów do wyświetlenia.
  • Sprawdza, czy używasz wtyczki do tłumaczeń, takiej jak Polylang lub WPML.
  • Jeśli Polylang jest aktywny, korzysta z aktualnych ustawień językowych Polylang.
  • Jeśli WPML jest aktywny, korzysta z aktualnych ustawień językowych WPML.
  • Następnie dostosowuje zapytanie, aby pobierać tylko posty dostępne w aktualnym języku.

Gdzie to ma zastosowanie:

  • Na głównych stronach witryny, zapewniając, że nieprzetłumaczone posty są ukryte.
  • Szczególnie na stronach kategorii, aby odwiedzający widzieli tylko posty w wybranym przez siebie języku.

Ta konfiguracja zapewnia, że Twoi odwiedzający widzą tylko treści, które zostały przetłumaczone, co zapewnia czystsze i bardziej odpowiednie doświadczenie przeglądania.

Kod

<?php
// Function to exclude untranslated posts from queries
function wp_dudecom_exclude_untranslated_posts( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        // Check if a translation plugin is active
        if ( function_exists( 'pll_current_language' ) ) {
            $current_language = pll_current_language();
            $query->set( 'lang', $current_language );
        } elseif ( function_exists( 'icl_object_id' ) ) {
            global $sitepress;
            $current_language = $sitepress->get_current_language();
            $query->set( 'lang', $current_language );
        }
    }
}
add_action( 'pre_get_posts', 'wp_dudecom_exclude_untranslated_posts' );

// Function to ensure untranslated posts are not displayed in category pages
function wp_dudecom_exclude_untranslated_posts_in_category( $query ) {
    if ( ! is_admin() && $query->is_category() && $query->is_main_query() ) {
        // Check if a translation plugin is active
        if ( function_exists( 'pll_current_language' ) ) {
            $current_language = pll_current_language();
            $query->set( 'lang', $current_language );
        } elseif ( function_exists( 'icl_object_id' ) ) {
            global $sitepress;
            $current_language = $sitepress->get_current_language();
            $query->set( 'lang', $current_language );
        }
    }
}
add_action( 'pre_get_posts', 'wp_dudecom_exclude_untranslated_posts_in_category' );
?>

Instrukcja

Lokalizacja pliku: Dodaj kod do pliku functions.php swojego motywu lub do pliku własnej wtyczki.

Wymagania wstępne:

  • Upewnij się, że masz zainstalowaną i aktywowaną wtyczkę do tłumaczeń, taką jak Polylang lub WPML.

Kroki wdrożenia:

  1. Dostęp do panelu WordPress: Zaloguj się do swojego panelu administracyjnego WordPress.
  2. Przejdź do Edytora motywu: Przejdź do Wygląd > Edytor motywu. Jeśli wolisz użyć własnej wtyczki, przejdź do Wtyczki > Dodaj nową i utwórz nową wtyczkę.
  3. Otwórz functions.php: W Edytorze motywu znajdź i otwórz plik functions.php z listy po prawej stronie. Jeśli używasz własnej wtyczki, otwórz plik wtyczki.
  4. Wstaw kod: Skopiuj podany kod i wklej go na końcu pliku functions.php lub pliku własnej wtyczki.
  5. Zapisz zmiany: Kliknij przycisk Aktualizuj plik, aby zapisać zmiany.
  6. Przetestuj swoją stronę: Odwiedź swoją stronę i przejdź do różnych stron i kategorii, aby upewnić się, że nieprzetłumaczone posty są ukryte w wybranym języku.

Jeśli napotkasz jakiekolwiek problemy lub potrzebujesz dalszej pomocy w tej implementacji lub bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.