Bedingt den Post aus einer bestimmten Kategorie auf der Startseite-Seitenleiste ausschließen?

Ich möchte Beiträge aus einer Kategorie ausschließen. Diese Beiträge sollten nicht in der Seitenleiste auf der Startseite angezeigt werden, wenn ich explizit nicht möchte, dass bestimmte Beiträge angezeigt werden. In allen anderen Fällen werden diese Beiträge angezeigt.

Ich habe es mit dem Plugin “WP Hide Post” versucht, aber das scheint nicht mit Sidebars zu funktionieren, nur für normale Loops. Ich habe überprüft, ob dieser Beitrag von der Startseite ausgeblendet wird und nichts passiert.

Dies ist der Code, den ich verwende, um Post in der Seitenleiste der Startseite anzuzeigen:

  <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 "Bedingt den Post aus einer bestimmten Kategorie auf der Startseite-Seitenleiste ausschließen?"

Sie können diesen Code zu einer neuen Datei mit dem Namen wpsites.php hinzufügen und dann das Template-Tag direkt in jeder Datei verwenden oder es mit einer benutzerdefinierten function mit themenspezifischen oder WordPress-Hooks einhängen.

Hinweis: Der gesamte Code kann in einem untergeordneten Thema verwendet werden.

 < ?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();

Get Template-Teil

Fügen Sie diesen Code in einer beliebigen Vorlagendatei hinzu. Für diese Frage eine Ihrer sidebar.php Dateien.

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

Benutzerdefinierte function

Oder haken Sie es ein, wenn Ihr Theme Action-Hooks enthält:

 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' ); }} 

Ändern Sie das bedingte Tag in der obigen benutzerdefinierten function, um es an Ihre eigenen Bedürfnisse anzupassen.

Alternative Methode für die Abfrage

Anstatt die Arrays von $ args zu verwenden, können Sie Ihre benutzerdefinierten Abfrageargumente durch folgende Zeile ersetzen:

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

Ich bin mir nicht sicher, ob das das ist, wonach du suchst, aber du könntest einfach ALLES INSIDE in die While / Endwhile mit einem

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

Ersetzen Sie einfach [category_id] durch die Kategorie, die Sie ausschließen möchten