¿Desea excluir una categoría específica de la página de inicio de su sitio web?
Por defecto, WordPress muestra entradas de todas las categorías en su página de inicio. En algunos casos, puede que no quieras eso.
En este artículo, le mostraremos cómo excluir fácilmente una categoría de su página de inicio de WordPress.
¿Por qué excluir una categoría de la página de inicio de WordPress?
WordPress le permite clasificar el contenido en categorías y etiquetas. Ahora bien, a veces puede que quieras usar una categoría para entradas que no forman parte de las entradas normales de tu blog.
Por defecto, WordPress no permite ocultar entradas de categorías específicas de la página de inicio o de los archivos. Esto hace que aparezcan entradas no deseadas en tu página de inicio.
Dicho esto, vamos a ver cómo puede excluir fácilmente una categoría específica de su página de inicio de WordPress. Te mostraremos dos métodos diferentes y podrás elegir el que mejor se adapte a tus necesidades.
Método 1: Excluir una categoría de WordPress usando plugin
Lo primero que tienes que hacer es instalar y activar el plugin Ultimate Category Excluder. Para más detalles, debería seguir nuestra guía sobre cómo instalar un plugin de WordPress.
Una vez activado, tendrás que ir a la página Ajustes ” Excluidor de categorías. Se mostrarán todas las categorías que están disponibles en su blog de WordPress.
Desde aquí, puede marcar una o varias categorías en la columna “Excluir de la página de inicio”. Si lo desea, también puede excluir la categoría de los feeds RSS, archivos, o incluso de la búsqueda de WordPress.
No olvides hacer clic en el botón “Actualizar” para guardar estos ajustes.
Ahora puede visitar su sitio web para ver que las entradas de las categorías seleccionadas están excluidas de la página de inicio.
Método 2: Excluir una categoría de la página de inicio de WordPress usando código
Este método requiere que añadas código a tus archivos de WordPress. Si no lo ha hecho antes, consulte nuestra guía sobre cómo copiar y pegar fragmentos de código en WordPress.
Deberá añadir el siguiente código al archivo functions. php de su tema, a un plugin específico del sitio o a un plugin de fragmentos de código.
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
No olvide sustituir ID (-5) por el ID de su categoría. Esto ocultará todas las entradas del blog de la página de inicio que pertenezcan a la categoría que coincida con este ID.
Nota: Asegúrese de añadir un signo menos (-) junto al ID de categoría.
¿No está seguro de cómo encontrar el ID de categoría? Consulte nuestra guía sobre cómo encontrar los ID de categoría en WordPress.
La forma más segura y sencilla de añadir este código en WordPress es utilizando el plugin WPCode. Te permite añadir código personalizado sin editar directamente tus archivos de WordPress. Por lo tanto, usted no tiene que preocuparse acerca de romper su sitio.
Para empezar, necesitarás instalar y activar el plugin gratuito WPCode. Si necesitas ayuda, consulta esta guía sobre cómo instalar un plugin de WordPress.
Una vez activado WPCode, dirígete a Code Snippets ” + Add Snippet en tu panel de WordPress.
A continuación, pase el cursor por encima de la opción “Añadir su código personalizado (nuevo fragmento)” y haga clic en el botón “Usar fragmento” situado debajo.
En la página “Crear fragmento de código personalizado”, puede empezar añadiendo un título para el fragmento. Puede ser cualquier cosa que te ayude a recordar para qué sirve el código.
A continuación, sólo tiene que pegar el código anterior en el cuadro “Vista previa del código” y seleccionar “Fragmento de código PHP” como tipo de código en el menú desplegable.
Después, todo lo que tiene que hacer es activar el conmutador de “Inactivo” a “Activo” y pulsar el botón “Guardar fragmento de código” en la parte superior de la página.
Si desea excluir varias categorías, puede cambiar el código de la siguiente manera:
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' );
Simplemente sustituya los IDs (-5, -9, -23) por los IDs de su categoría para excluirlos de su página de inicio de WordPress.
Esperamos que este artículo te haya ayudado a aprender cómo excluir una categoría de tu página de inicio de WordPress. Puede que también quieras ver estos hacks de categorías y plugins para WordPress que te ayudarán a usar las categorías de forma más eficiente, o nuestra selección de los mejores plugins de formularios de contacto para WordPress.
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.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
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.
Administrador
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.
Administrador
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/
Administrador
Isaac
thanks genius this works perfectly
WPBeginner Support
Glad our guide was helpful
Administrador
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.
Administrador
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/
Administrador
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
Administrador
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.
Administrador
Christopher
Thanks for this article.
I want to ask if it’s also possible to exclude Google Adsense ads from some specific categories