Какой URL для архива категории?
7 февр. 2011 г., 19:03:36
Просмотры: 20.1K
Голосов: 5
Комментарии
Показать остальные 2 комментариев
Все ответы на вопрос
2
1
Нет архивов по датам для категорий. Страницы вида /category/[слаг]/
уже являются "архивами", так как отображают старые записи на разных страницах.
Доступ к разным страницам осуществляется путем добавления к URL page/2/
, page/3/
, и так далее. Для добавления ссылок на эти страницы используются теги шаблонов next_posts_link()
и previous_posts_link()
.
Если вы хотите добавить фильтрацию по дате к архивам категорий, можно добавить правило перезаписи URL для соответствия году, опционально месяцу и опционально нумерации страниц.
add_filter( 'category_rewrite_rules', 'wpse8769_category_rewrite_rules' );
function wpse8769_category_rewrite_rules( $category_rules )
{
global $wp_rewrite;
// Это может работать некорректно для сложных структур постоянных ссылок, проверено только в простых случаях
$category_permastruct = str_replace( $wp_rewrite->rewritecode, $wp_rewrite->rewritereplace, $wp_rewrite->get_category_permastruct() );
$category_permastruct = preg_replace( '|^/+|', '', $category_permastruct );
$category_extra_rules = array(
// Или можно разбить на разные правила перезаписи, если регулярное выражение слишком сложное
// RSS-ленты оставляем как упражнение для читателя
$category_permastruct . '/([0-9]{4})(/([0-9]{1,2}))?(/page/([0-9]+))?/?$' =>
'index.php?category_name=$matches[1]&year=$matches[2]&monthnum=$matches[4]&paged=$matches[6]',
);
return $category_extra_rules + $category_rules;
}

Jan Fabry
30.5K
7 февр. 2011 г. 19:06:50
Комментарии
К сожалению, это не совсем работает. Ограничение по месяцу (февраль) работает нормально, но фильтр по году не применяется, поэтому я получаю записи за февраль 2011, февраль 2010 и т.д.

11 февр. 2011 г. 13:35:48
Похожие вопросы