Czy chcesz wykluczyć określoną kategorię ze strony głównej twojej witryny internetowej?
Domyślnie WordPress wyświetla wpisy ze wszystkich kategorii na twojej stronie głównej. W niektórych przypadkach możesz tego nie chcieć.
W tym artykule pokażemy ci, jak łatwo wykluczyć kategorię z twojej strony głównej WordPress.
Dlaczego warto wykluczyć kategorię ze strony głównej WordPress?
WordPress umożliwia sortowanie treści według kategorii i tagów. Czasami możesz chcieć użyć kategorii dla wpisów, które nie są częścią twojego normalnego bloga.
Domyślnie WordPress nie pozwala na ukrycie wpisów z określonych kategorii na stronie głównej lub w archiwum. Powoduje to wyświetlanie niechcianych wpisów na twojej stronie głównej.
Biorąc to pod uwagę, zobaczmy, jak łatwo wykluczyć określoną kategorię z twojej strony głównej WordPress. Pokażemy ci dwie różne metody i będziesz mógł wybrać tę, która najlepiej pasuje do twoich potrzeb.
Metoda 1: Wyklucz kategorię z WordPressa za pomocą wtyczki
Pierwszą rzeczą, którą należy zrobić, jest zainstalowanie i włączanie wtyczki Ultimate Category Excluder. Aby uzyskać więcej szczegółów, powinieneś postępować zgodnie z naszym przewodnikiem na temat instalacji wtyczki WordPress.
Po włączaniu należy przejść do strony Ustawienia ” Wykluczanie kategorii. Wyświetli ona wszystkie kategorie, które są dostępne na twoim blogu WordPress.
Z tego miejsca możesz po prostu zaznaczyć jedną lub wiele kategorii w kolumnie „Wyklucz ze strony głównej”. Jeśli chcesz, możesz również wykluczyć kategorię z kanałów RSS, archiwów, a nawet z wyszukiwania WordPress.
Nie zapomnij kliknąć przycisku „Aktualizuj”, aby zapisać te ustawienia.
Teraz możesz przejść na swoją witrynę internetową i zobaczyć, że wpisy z wybranych kategorii są wyłączone ze strony głównej.
Metoda 2: Wyklucz kategorię ze strony głównej WordPress za pomocą kodu
Ta metoda wymaga dodania kodu do twoich plików WordPress. Jeśli nie robiłeś tego wcześniej, zapoznaj się z naszym przewodnikiem na temat kopiowania i wklejania fragmentów kodu w WordPress.
Będziesz musiał dodać następujący kod do pliku functions. php twojego motywu, wtyczki specyficznej dla witryny lub wtyczki fragmentów kodu.
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
Nie zapomnij zastąpić identyfikatora (-5) identyfikatorem twojej kategorii. Spowoduje to ukrycie wszystkich wpisów na blogu na stronie głównej należących do kategorii odpowiadającej temu identyfikatorowi.
Uwaga: Pamiętaj, aby dodać znak minus (-) przy identyfikatorze kategorii.
Nie wiesz, jak znaleźć identyfikator kategorii? Zobacz nasz przewodnik na temat znajdowania identyfikatorów kategorii w WordPress.
Najbezpieczniejszym i najłatwiejszym sposobem dodania tego kodu w WordPressie jest użycie wtyczki WPCode. Umożliwia ona dodawanie własnego kodu bez bezpośredniej edycji twoich plików WordPress. Nie musisz się więc martwić, że zepsujesz swoją witrynę.
Aby rozpocząć, należy zainstalować i włączyć bezpłatną wtyczkę WPCode. Jeśli potrzebujesz pomocy, zapoznaj się z przewodnikiem na temat instalacji wtyczki WordPress.
Po włączeniu WPCode, przejdź do Code Snippets ” + Add Snippet w twoim kokpicie WordPress.
Następnie najedź kursorem myszy na opcję „Add Your Custom Code (New Snippet)” i kliknij znajdujący się pod nią przycisk „Use snippet”.
Na stronie „Create Custom Snippet” możesz zacząć od dodania tytułu dla twojego fragmentu kodu. Może to być cokolwiek, co pomoże ci zapamiętać, do czego służy kod.
Następnie wystarczy wkleić powyższy kod w polu „Podgląd kodu” i wybrać „Fragment kodu PHP” jako rodzaj kodu z rozwijanego menu.
Następnie wystarczy przełączyć przełącznik z „Nieaktywny” na „Aktywny” i nacisnąć przycisk „Zapisz fragment kodu” u góry strony.
Jeśli chcesz wykluczyć wiele kategorii, możesz zmienić kod w następujący sposób:
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5, -9, -23' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
Wystarczy zastąpić identyfikatory (-5, -9, -23) identyfikatorami twojej kategorii, aby wykluczyć je ze strony głównej WordPress.
Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak wykluczyć kategorię z twojej strony głównej WordPress. Możesz również zobaczyć te najbardziej poszukiwane hacki kategorii i wtyczki do WordPress a, które pomogą Ci efektywniej korzystać z kategorii, lub nasze wybory ekspertów dotyczące najlepszych wtyczek formularzy kontaktowych dla WordPressa.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Jiří Vaněk
I initially used the Exclude Category plugin, but as my plugins started to accumulate, I tried your snippet, and it works just as great. Thank you very much for providing the code. It saved me another plugin that I don’t have to have in the system.
Joseph
Will using the Ultimate Category Excluder plugin block Googlebot from crawling posts in that particular category? I don’t want my site users to access a particular category.
WPBeginner Support
As long as the pages can be found in some way by Google from something like a sitemap or other page on your site then there the crawler would be fine.
Administrator
Johan
As always: a huge THANKS for all your great tutorials!
Excluding a category the functions.php-way works great for me. BUT: I find that the same category is also excluded from a custom WP_Query that I put on a profile page. Why is that?
My query:
$the_query = new WP_Query( array( 'meta_key’ => 'fetcher’, 'meta_value’ => $user_ID ) );
WPBeginner Support
Glad it was helpful, the code should only affect the home page, one possibility you could check would be to see if your caching could be the culprit.
Administrator
Johan Hagvil
I found the solution!
Changing the second line of my snippet to:
if ( $query->is_main_query() && $query->is_front_page() ) {
WPBeginner Support
Thank you for sharing for anyone else who may be running into the same error!
metin
Let’s assume the id of the blog category is 1. Can I add php code about showing all ids greater than -2 so that it doesn’t show all categories greater than 1. Can there be a method that will work with php code that will work dynamically instead of adding an id every time?
WPBeginner Support
For what you’re wanting to achieve, it would be better to select the categories you want to show instead of trying to exclude all other categories. You can see how to do this in our article below!
https://www.wpbeginner.com/wp-tutorials/how-to-display-recent-posts-from-a-specific-category-in-wordpress/
Administrator
Isaac
thanks genius this works perfectly
WPBeginner Support
Glad our guide was helpful
Administrator
Abdullah Al Muaz
thanks dude. it works.
Abdullah Al Muaz
i use a specific page to display recent posts. so i think for my case it should not be /code $query->is_home /code
what should i put instead of „home”
i want to hide specific category from „blog”
WPBeginner Support
The code should work the same for your blog page if you set a page for your recent posts.
Administrator
MENHADI HASAN
Hi,
How to exclude whole category and custom from the search form or can I modified search form to just search by a specific taxonomy rest all are excluded from the search
WPBeginner Support
For hiding content from your search, you would want to take a look at our page here: https://www.wpbeginner.com/plugins/how-to-exclude-specific-pages-authors-and-more-from-wordpress-search/
Administrator
Sidchan Mall
Thanks for the tip, I began using the plugin to exclude theme-specific content posts (testimonials, sliders) on my website!
WPBeginner Support
You’re welcome, glad our guide could help
Administrator
Paolo
I followed the Method 2 instructions, but after the change the media library doesn’t work anymore!
WPBeginner Support
The code should not affect your media library unless there is a larger error that is affecting your site. It would depend on the error message for the reason.
Administrator
Christopher
Thanks for this article.
I want to ask if it’s also possible to exclude Google Adsense ads from some specific categories