register_post_type = 404

Регистрирую новый тип контента, допустим product, настраиваю метаполя которые мне необходимы. Админка выглядит супер, всё сохраняет, ревизии работаю. При просмотре одной записи типа www.site.ru/product/comp всё отображается.
А теперь вопрос! Почему при попытке пройти www.site.ru/product вылазит 404 ошибка и в хлебных крошках данная категория выглядит как www.site.ru/product/comp излазил всё что можно, перепробовал кучу вариантов выложенных здесь и на других сайтах результаты ещё хуже чем у меня, т.е. вообще не выводит контент.
Поставил плагин easy-post-types – список записей отображается. Не хочу использовать сторонние плагины, хочется сделать своё, без лишних примочек.

Параметр has_archive указан?

Нет, есть ссылка где можно глянуть?
Кстати с выводом списка разобрался без редактирования шаблона. Естественно под метабоксы придётся, но это позже.

http://codex.wordpress.org/Function_Reference/register_post_type

has_archive
    (boolean or string) (optional) Enables post type archives. Will use string as archive slug. Will generate the proper rewrite rules if rewrite is enabled.
        Default: false

Поставил true.
Линк на основную категорию выводиться как product/%category%/, в значении false: product/first_cat_product/
Однако основная категория где должны выводиться все продукты из всех категорий, т.е. product/ ссылается на 404, подозреваю ещё какой то фильтр надо сделать.
И ещё возникла проблема. В шаблоне настроен переход к следующей записи и к предыдущей. К сожалению в конструкции запросов БД WP не углублялся, поэтому не пойму на что он ругается:

WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') WHERE p.post_date < '2011-10-14 10:22:36' AND p.post_type = 'product' AND p.po' at line 1]
SELECT p.* FROM test_posts AS p INNER JOIN test_term_relationships AS tr ON p.ID = tr.object_id INNER JOIN test_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id AND tt.taxonomy = 'category' AND tt.term_id IN () WHERE p.post_date < '2011-10-14 10:22:36' AND p.post_type = 'product' AND p.post_status = 'publish' AND tt.taxonomy = 'category' ORDER BY p.post_date DESC LIMIT 1

WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') WHERE p.post_date > '2011-10-14 10:22:36' AND p.post_type = 'product' AND p.po' at line 1]
SELECT p.* FROM test_posts AS p INNER JOIN test_term_relationships AS tr ON p.ID = tr.object_id INNER JOIN test_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id AND tt.taxonomy = 'category' AND tt.term_id IN () WHERE p.post_date > '2011-10-14 10:22:36' AND p.post_type = 'product' AND p.post_status = 'publish' AND tt.taxonomy = 'category' ORDER BY p.post_date ASC LIMIT 1

а именно, какой фильтр добавить для get_adjacent_post_rel_link чтобы WP не ругался на tt.term_id IN () .
Вывожу линки на следующие и предыдущие записи так:

$prev_link = get_adjacent_post_rel_link($title = '%title', $in_same_cat = true, $excluded_categories = '', $previous = true);
$next_link = get_adjacent_post_rel_link($title = '%title', $in_same_cat = true, $excluded_categories = '', $previous = false);

Именно в таком виде, потому что необходимо для дизайна шаблона.

С первым вопросом справился, осталось найти решение для предыдущей и следующей записи.

Anonymous
Отправить
Ответ на: