it-swarm.com.de

Beiträge nach Kategorie anzeigen

Ich habe eine Autorenseite erstellt 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 vom jeweiligen Autor veröffentlichten Titel der Beiträge angezeigt werden. Ich versuche, die Anzeige der Beiträge nach der Kategorie zu trennen, der sie angehören (1, 2 oder 3), also habe ich versucht, sie zu verwenden

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

aber dann werden alle meine Blog-Posts angezeigt, nicht nur die des Autors. Irgendwas stimmt mit Sicherheit nicht.

Ich weiß, dass ich eine benutzerdefinierte Abfrage verwenden muss, wenn es mehr als eine Schleife pro Post gibt, aber da die Verwendung einer einzelnen Standardabfrage mit dem Filter "cat" nicht funktioniert, bin ich etwas verloren.

1
Sergio Majluf

Wenn Sie eine Autorenvorlage verwenden, müssen Sie die Parameter für die Autorenabfrage auf keinen Fall einrichten (festlegen). Sie werden dann in dem auf der Autorenseite vorhandenen Abfrageobjekt eingerichtet.

Sie könnten außerdem die Notwendigkeit vermeiden, zahlreiche Abfragen zu erstellen (eine pro Kategorie derzeit), indem Sie die Abfrage durchlaufen, die Kategorien extrahieren und Beitrags-IDs, die bestimmten Kategorien zugeordnet sind, in einem Array speichern. Die erste Iteration, die Sie verwenden, um das Array von IDs zu erstellen, geteilt durch den Kategorienamen/die ID (was auch immer Sie möchten), dann die Abfrage zurückzuspulen, über die Posts zu iterieren und die Ergebnisse fortzusetzen (zu überspringen), die nicht der ersten Kategorie in Ihrem neu erstellten Array entsprechen von Kategorie-IDs (oder Namen). Anschließend wird die Schleife zurückgespult und für jede Kategorie im neuen Array erneut iteriert. Die Posts werden fortgesetzt (übersprungen), wenn sie nicht mit der aktuellen Kategorie-Iteration übereinstimmen.

Es ist nicht wirklich sinnvoll, bis Sie es sehen, und wird ein wenig komplexer, wenn Sie Ihre Beiträge in mehrere Kategorien einteilen (wobei sich die Kategorien über Beiträge hinweg überschneiden können), aber es funktioniert (ohne zusätzliche Abfragen) für die Aktuelle Seite (es wird offensichtlich nicht die gesamte Ergebnismenge sortiert. Während also eine bestimmte Seite sortiert wird, wird die Gesamtsortierung nicht über die Summe aller Seiten der Ergebnismenge übertragen.).

Wenn Sie der Meinung sind, dass die oben genannte Methode nützlich ist und Sie sich nicht mit dem oben genannten Problem beschäftigen, ist es mir egal, ein Beispiel anzugeben.

0
t31os

Viel einfacher gelöst

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

<?php query_posts('cat=1&author='.$curauth->ID;); ?>
1
Sergio Majluf