WordPress URL для категорий и лет - PullRequest
1 голос
/ 15 сентября 2011

Я новичок в WordPress и у меня есть вопрос об URL-адресах и заархивированных элементах.

В основном у меня есть две категории постов: новости и освещение в СМИ.

когда вы идетев разделе «новости» или «освещение в СМИ» блога (myblog.com/news-item/) в левой навигационной панели создается меню, содержащее каждый год публикации сообщения в этой категории.Я хочу, чтобы пользователь мог щелкнуть одну из этих ссылок и просмотреть все сообщения определенной категории и года.

, например, URL приведет к

myblog.com/media-coverage/2006/ 

и отследующая страница приведет к

myblog.com/media-coverage/2006/page/2/

, тогда шаблон будет выглядеть примерно так:

 query_posts('category_name=media-coverage&m=year'); 
   if (have_posts()) : while (have_posts()) : the_post(); ?>
      <div class="entry">
     <?php the_content(); ?>
     <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
  </div>
  <?php endwhile; 
   endif; ?>

Я не могу понять, как заставить WordPress распознать'год' часть URL.Я могу жестко запрограммировать год в функции «query_posts», например

   query_posts('category_name=media-coverage&m=2007'); 

, и она делает именно то, что я хочу, я просто не могу заставить ее вытаскивать дату из URL, и я бы предпочел ненаписать шаблон для каждой комбинации года / категории.Как сделать ссылки на фильтр Wordpress так, как мне нужно?

edit: в настоящее время у меня установлены постоянные ссылки на /% postname% /, не уверен, поможет ли это.

1 Ответ

2 голосов
/ 15 сентября 2011

Попробуйте это:

register_activation_hook( __FILE__, 'flush_rewrite_rules' );
register_deactivation_hook( __FILE__, 'flush_rewrite_rules' );


function so7422487_add_rewrite_rules( $wp_rewrite ) {
    $new_rules = array( 
        '(.+)/(.+)' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&year='.$wp_rewrite->preg_index(2) );

    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

add_action('generate_rewrite_rules', 'so7422487_add_rewrite_rules');

Я сохранил его как плагин на Gist . Вы можете скачать этот файл и загрузить его в каталог плагинов.

Скажите, пожалуйста, как все прошло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...