Используйте страницу WordPress вместо архива типов записей

15

Извините, если это дубликат - я не могу найти ответ.

Как переписать страницу архива пользовательского типа поста на «созданную человеком» страницу WordPress?

Например:

  • Одна страница: http://www.mywebsite.com/cool-post-type/awesome-single-post/
  • Архивная страница: http://www.mywebsite.com/cool-post-type/

Я хочу http://www.mywebsite.com/cool-post-type/переписать на http://www.mywebsite.com/about-cool-post-types/.

Могу ли я просто сделать это с htaccess и какой будет синтаксис? (Я не очень хорош в htaccess!)

Это не работает:

RewriteRule ^cool-post-type\/\?$ /about-cool-post-types [L]

Или я должен сделать это в исходном коде WordPress? Я не хочу!

Warwick
источник

Ответы:

16

Это на самом деле довольно легко. Когда вы объявляете свой тип сообщения, используя register_post_type , вам нужно добавить новый аргумент для has_archive.

Таким образом, вы добавите что-то к эффекту:

'has_archive' => 'about-cool-post-types'

Затем перейдите в «Настройки»> «Постоянные ссылки», чтобы очистить их, и это должно работать. Я проверил это локально, и это, кажется, способ автоматически сгенерировать вашу страницу архива по другому URL. Затем вы сможете создать страницу в слаге CPT.

socki03
источник
Это перестало работать, но мне удалось это исправить, присвоив 'has_archive' произвольному тексту и переименовав slug моей страницы в slug категории.
Уорик,
7

Есть также простой плагин из 1 файла для этого от HumanMade;

https://github.com/humanmade/page-for-post-type

(Мета: я знаю, что ответы со ссылками, как правило, не очень хороши, но я не просто хочу скопировать и вставить исходный код этой вещи в ответ. Какова лучшая стратегия для такой вещи?)

RichardTape
источник