Отображение сообщений, разделенных категорией на странице автора

wordpress.stackexchange https://wordpress.stackexchange.com/questions/4646

Вопрос

Я создал страницу автора, используя:

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

А затем стандартная петля, которая отображает названия всех сообщений, опубликованных этим автором. Я пытаюсь отделить отображение постов, в соответствии с категорией, к которой они принадлежат (1, 2 или 3), поэтому я попытался использовать

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

Но тогда отображаются все мои сообщения в блоге, а не только автора. Что -то, безусловно, не так.

Я знаю, что должен использовать пользовательский запрос, когда существует более одного цикла за пост, но, учитывая, что просто используя один стандартный запрос, с фильтром «кошка» не работает, я немного потерян.

Это было полезно?

Решение

Если вы используете шаблон автора, абсолютно не нужно настраивать (установить) параметры запроса автора, они будут готовы настройки в объекте запроса, присутствующего на странице автора.

Вы можете дополнительно избежать необходимости создавать многочисленные запросы (по одному на категорию в настоящее время), итерация по поводу вашего запроса, извлечения категорий и хранения идентификаторов почты, связанных с данными категориями внутри массива. Сначала итерация, которую вы используете для создания массива идентификаторов, разделенных на имя/ID категории (все, что вам нравится), а затем перемотать запрос, итерация над сообщениями, продолжая (пропуская) результаты, которые не соответствуют первой категории в вашем недавно созданном массиве идентификаторов категории (или имен). Опять же, вы следите за переработкой петли, затем снова итерации по нему для каждой категории, которая есть в новом массиве, продолжая (пропуская) посты, когда они не соответствуют итерации текущей категории.

Это не то, что действительно будет иметь большой смысл, пока вы не увидите его, и станет немного сложнее, если вы классифицируете свои посты по нескольким категориям (где категории могут пересекать посты), но это будет работать (без каких -либо дополнительных запросов) для Текущая страница (она, очевидно, не сортирует полного набора результатов, поэтому, хотя данная страница будет сортироваться, этот общий сортировка не будет переносить сумму всех страниц для набора результатов).

Если вы думаете, что приведенный выше метод звучит полезным, и вы не суетились о вышеупомянутой проблеме, я не против привести пример.

Другие советы

Решен гораздо более проще

У меня есть один цикл на каждую категорию, которую мне нужно отобразить, и запрос создан с помощью:

<?php query_posts('cat=1&author='.$curauth->ID;); ?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top