Excluir condicionalmente a publicação de categoria específica na barra lateral da página inicial?

Quero excluir posts de uma categoria. Essas postagens não devem ser exibidas na barra lateral na página inicial somente quando eu explicitamente não quero que essas postagens particulares sejam exibidas. Em todos os outros casos, essas postagens serão exibidas.

Eu tentei com o plugin “WP Hide Post”, mas isso parece não funcionar com barras laterais, apenas for loops regulares. Eu verifiquei em esconder esta postagem da página inicial, e nada acontece.

Este é o código que uso para exibir publicação na barra lateral da página inicial:

  <h2 id="post-"> <a href="https://wordpress.stackexchange.com//questions/44571/conditionally-exclude-post-from-specific-category-on-home-page-sidebar/" rel="bookmark" accesskey="s">  

Solutions Collecting From Web of "Excluir condicionalmente a publicação de categoria específica na barra lateral da página inicial?"

Você pode adicionar este código a um novo arquivo chamado wpsites.php e, em seguida, usar a tag do modelo diretamente em qualquer arquivo ou conectá-lo usando uma function personalizada com o tema específico ou os ganchos do WordPress.

Nota: Todo o código pode ser usado em um tema infantil.

 < ?php // Your Custom Query Arguments $args = array( 'category__not_in' => array( 007 ) ) ); $wpsites_catposts = new WP_Query( $args ); // Your Custom Loop if ( $wpsites_catposts->have_posts() ) { echo '
    '; while ( $wpsites_catposts->have_posts() ) { $wpsites_catposts->the_post(); echo '
  • ' . get_the_title() . '
  • '; } echo '
'; } else { echo '
No posts found for this query.
'; } wp_reset_postdata();

Obter parte do modelo

Adicione este código em qualquer arquivo de modelo. Para esta questão, um dos seus arquivos sidebar.php.

 < ?php get_template_part( 'wpsites' ); ?> 

Função personalizada

Ou ligue-o se o seu tema include ganchos de ação:

 add_action ( 'your_themes_before_sidebar_hook', 'exclude_posts_in_sidebar_loop' ); function exclude_posts_in_sidebar_loop() { if ( is_home() ) { get_template_part( 'wpsites' ); }} 

Altere a etiqueta condicional na function personalizada acima para atender às suas próprias necessidades.

Método alternativo para consulta

Em vez de usar os arrays de $ args, você pode replace seus argumentos de consulta personalizados por essa linha:

 $wpsites_catposts = new WP_Query( array( 'category__not_in' => array( 007 ) ) ); 

Não tenho certeza se isso é o que você está procurando, mas você poderia simplesmente embrulhar tudo DENTRO do tempo / tempo com um

 < ?php if(! in_category( array( [category_id] ) )) ?> ....your code here to display the rest of the categories..... < ?php endif; ?> 

Basta replace [category_id] pela categoria que você deseja excluir