Frage

Ich habe eine Seite eines Autors mit:

 <?php
  if(isset($_GET['author_name'])) :
  $curauth = get_userdatabylogin($author_name);
  else :
  $curauth = get_userdata(intval($author));
  endif;
 ?>

und dann eine Standardschleife, in der alle von diesem Autor veröffentlichten Titel alle Beiträge angezeigt werden. Ich versuche, die Anzeige der Beiträge nach der Kategorie zu trennen, zu der sie gehören (1, 2 oder 3), also habe ich versucht, es zu verwenden

<?php query_posts('cat=1'); ?>

Aber dann werden alle meine Blog -Beiträge angezeigt, nicht nur die des Autors. Etwas ist sicherlich falsch.

Ich weiß, dass ich eine benutzerdefinierte Abfrage verwenden muss, wenn es mehr als eine Schleife pro Beitrag gibt. Angesichts der Verwendung einer einzigen Standardabfrage, mit dem "Cat" -Filter nicht funktioniert, ist ich etwas verloren.

War es hilfreich?

Lösung

Wenn Sie eine Autorenvorlage verwenden, müssen die Parameter der Autorenabfrage unbedingt nicht eingerichtet werden (festlegen). Sie werden in dem auf der Autorenseite vorhandenen Abfrageobjekt bereit eingerichtet.

Sie können zusätzlich die Notwendigkeit vermeiden, zahlreiche Abfragen (derzeit eine pro Kategorie) zu erstellen, indem Sie die Abfrage durchführen, die Kategorien extrahieren und Post -IDs speichern, die mit angegebenen Kategorien in einem Array zugeordnet sind. Erstens Iteration, mit dem Sie das Array von IDs erstellen, geteilt durch Kategorienname/ID (was auch immer Sie mögen), und dann die Abfrage zurückspulen, über die Beiträge iterieren, die Ergebnisse fortsetzen (überspringen), die nicht mit der ersten Kategorie in Ihrem neu erstellten Array übereinstimmen von Kategorie -IDs (oder Namen). Nochmals folgen Sie, indem Sie die Schleife zurückspulen und dann für jede Kategorie, die Sie im Neuarray haben, erneut über sie iteriert (überspringen), wenn sie nicht mit der aktuellen Kategorie -Iteration übereinstimmen.

Es ist nicht etwas, das wirklich viel Sinn macht, bis Sie es sehen, und wird etwas komplexer, wenn Sie Ihre Beiträge in mehrere Kategorien einordnen (wobei sich die Kategorien über Beiträge überschneiden können), aber es funktioniert (ohne zusätzliche Abfragen) für die Aktuelle Seite (es wird offensichtlich nicht das vollständige Ergebnissatz sortieren. Während eine bestimmte Seite sortiert wird, wird diese Gesamtsortierung die Summe aller Seiten für das Ergebnissatz nicht übertragen).

Wenn Sie der Meinung sind, dass die oben genannte Methode nützlich klingt und Sie sich nicht über das oben erwähnte Problem befassen, habe ich nichts dagegen, ein Beispiel zu geben.

Andere Tipps

Viel einfacher gelöst

Ich habe eine Schleife pro Kategorie, die ich anzeigen muss, und die Abfrage wird mit:

<?php query_posts('cat=1&author='.$curauth->ID;); ?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top