Snippet

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

Jak ukryć nieprzetłumaczone posty w WordPressieWyklucz nieprzetłumaczone posty z witryny WordPressUkryj posty bez tłumaczenia w WordPressieZapobiegaj wyświetlaniu nieprzetłumaczonych postów w WordPressieWordPress ukryj posty, które nie są przetłumaczoneUsuń nieprzetłumaczone posty z strony kategorii WordPressWordPress wyklucz posty bez tłumaczeniaUkryj nieprzetłumaczoną treść w WordPressieWordPress nie wyświetlaj nieprzetłumaczonych postówJak 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

1<?php 2// Function to exclude untranslated posts from queries 3function wp_dudecom_exclude_untranslated_posts( $query ) { 4 if ( ! is_admin() && $query->is_main_query() ) { 5 // Check if a translation plugin is active 6 if ( function_exists( 'pll_current_language' ) ) { 7 $current_language = pll_current_language(); 8 $query->set( 'lang', $current_language ); 9 } elseif ( function_exists( 'icl_object_id' ) ) { 10 global $sitepress; 11 $current_language = $sitepress->get_current_language(); 12 $query->set( 'lang', $current_language ); 13 } 14 } 15} 16add_action( 'pre_get_posts', 'wp_dudecom_exclude_untranslated_posts' ); 17 18// Function to ensure untranslated posts are not displayed in category pages 19function wp_dudecom_exclude_untranslated_posts_in_category( $query ) { 20 if ( ! is_admin() && $query->is_category() && $query->is_main_query() ) { 21 // Check if a translation plugin is active 22 if ( function_exists( 'pll_current_language' ) ) { 23 $current_language = pll_current_language(); 24 $query->set( 'lang', $current_language ); 25 } elseif ( function_exists( 'icl_object_id' ) ) { 26 global $sitepress; 27 $current_language = $sitepress->get_current_language(); 28 $query->set( 'lang', $current_language ); 29 } 30 } 31} 32add_action( 'pre_get_posts', 'wp_dudecom_exclude_untranslated_posts_in_category' ); 33?>

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.