Я знаю, что это довольно распространенная тема, но я не могу решить проблему, с которой столкнулся. Любая помощь приветствуется, на данный момент я бездельничаю.
Используя плагин Custom Post Type UI, я создал несколько пользовательских типов сообщений (в этом примере я буду использовать «блог»). Я установил has_archive => true, а также использовал плагин под названием Custom Post Type Archives, чтобы моя нумерация страниц работала правильно. Пока у меня работают постоянные ссылки, теги, категории и нумерация страниц. Однако проблема заключается в том, что я пытаюсь использовать функцию wp_get_archives. Я понимаю, что это не захватывает CPT, поэтому я использовал функцию, которая поставляется с плагином Custom Post Type Archives (wp_get_custom_post_archives). В зависимости от того, как я настраиваю аргументы, он выдает либо 404, либо загружает архивы, но просто отображает каждую запись (а не только те, которые относятся к выбранному месяцу). В идеале я просто хочу, чтобы он отображал ежемесячные архивы.
<?php wp_get_post_type_archives('blog');
Посмотрите здесь: http://www.metropoliscreative.com/coding/w/blog/
Я использовал это для регистрации типа сообщения и считаю, что сделал это правильно. Не уверен, что я делаю неправильно в этот момент.
register_post_type('blog', array(
'label' => 'Blog',
'description' => 'Blog Entries',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array(
'slug' => 'blog'),
'has_archive' => true,
'query_var' => true,
'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes',),
'taxonomies' => array('category','post_tag',),
'labels' => array (
'name' => 'Blog',
'singular_name' => 'Blog',
'menu_name' => 'Blog',
'add_new' => 'Add Blog',
'add_new_item' => 'Add New Blog',
'edit' => 'Edit',
'edit_item' => 'Edit Blog',
'new_item' => 'New Blog',
'view' => 'View Blog',
'view_item' => 'View Blog',
'search_items' => 'Search Blog',
'not_found' => 'No Blog Found',
'not_found_in_trash' => 'No Blog Found in Trash',
'parent' => 'Parent Blog',
),) );
Поскольку has_archive был новым в 3.1 (я думаю), очень вероятно, что один из этих плагинов может его не использовать.
Вик, я думаю, ты прав. Однако это не оказывает негативного влияния на то, что я делаю (я так не думаю). Если я удалю его, я не смогу попасть в блог/страницу/2 без ошибки 404.
Привет Bainternet, спасибо за ответ. К сожалению, я все еще получаю 404.
Например, я не вижу 404 на metropoliscreative.com/coding/w/blog/2011/03. и если вы все еще получаете 404, то это не имеет отношения к
wp_get_post_type_archive
моему ответу.Мой ответ на вопрос Получить ежемесячные архивы для пользовательского типа сообщений?
Ваш ответ дал мне 404. С тех пор я получил wp_get_post_type_archive не 404, однако он просто захватывает все записи, а не записи за соответствующий месяц.
404 означает, что вы не попадаете на страницу, поэтому код, который я разместил, не имеет к этому никакого отношения. также wp_get_post_type_archive не может генерировать 404, так что это не проблема.
Вы можете использовать
getarchives_where
хук функции wp_get_archives ()Добавьте эту функцию в свой functions.php:
Затем, когда вы хотите, чтобы ваш ежемесячный архив поместил это: