wake-up-neo.net

Wie kann ich Beiträge einer bestimmten Kategorie nach einem bestimmten Zeitraum von der Homepage entfernen?

Ich möchte wissen, wie ich Beiträge aus einer bestimmten Kategorie nach einem bestimmten Zeitraum von meiner Homepage entfernen kann (aber die Beiträge nicht verfallen).

Meine Website ist derzeit so eingestellt, dass meine neuesten Blogbeiträge aus der Kategorie "Basic" angezeigt werden.

Die Kategorie "Basic" hat folgende Unterkategorien:

Basic

- Ankündigungen

- Unternehmensspezifisch

- Industrie

-- Andere

-- Dritte Seite

- - Fisco

Die Unterkategorie "Third Party" enthält wöchentliche Posts. Alle anderen Unterkategorien zusammen ergeben einen wöchentlichen Beitrag. Folglich stammt die Hälfte meines Homepage-Inhalts aus der Unterkategorie "Drittanbieter". Ich möchte dies so einstellen, dass "Third Party" -Postings nach 14 Tagen von der Homepage entfernt werden.

1
cyoung1989

Dies sieht einfach aus, ist es aber leider nicht, da Sie mit wp_query keine Posts aufgrund mehrerer Argumente ausschließen können (in diesem Fall Kategorie und Datum). Sie können anhand mehrerer Argumente auswählen, aber nicht ausschließen. Um zu tun, was Sie wollen, müssen Sie Ihre beiden Argumente auf irgendeine Weise zu einem bündeln. Konzeptionell wählen Sie die Posts aus, die Sie nicht möchten, und schließen sie dann anhand ihrer IDs aus. Auf geht's:

add_action ('pre_get_posts', 'wpse308323_multiple_exclude', 10, 1);
function wpse308323_multiple_exclude ($query) {
  // only do this on home page for main query
  if ( $query->is_home() && $query->is_main_query() && ! is_admin() ) {
    // define posts to exclude and get them
    $args = array (
      'category_name' => 'third-party',
      'date_query' => array(
        array(
          'before' => '2 weeks ago'
           )
        )
      );
    $q2 = new WP_Query ($args);
    // extract an array of ID's from the posts retrieved in $q2
    $q2_ids = wp_list_pluck ($q2->$posts,ID);
    // exclude these ID's from the main query
    $query->set ('post__not_in', $q2_ids);
    }
  }

Haftungsausschluss: Der obige Code dient zur Veranschaulichung des Konzepts. Ich habe es nicht getestet, daher ist möglicherweise ein Debugging erforderlich. Einige Referenzen:

2
cjbj