Użyj strony WordPress zamiast archiwum typu posta


15

Przepraszam, jeśli to duplikat - nie mogę znaleźć odpowiedzi.

Jak przepisać niestandardową stronę archiwum typu posta na stronę WordPress „stworzoną przez człowieka”?

Na przykład:

  • Pojedyncza strona: http://www.mywebsite.com/cool-post-type/awesome-single-post/
  • Strona archiwum: http://www.mywebsite.com/cool-post-type/

Chcę http://www.mywebsite.com/cool-post-type/przepisać na http://www.mywebsite.com/about-cool-post-types/.

Czy mogę to zrobić za pomocą htaccess i jaka byłaby składnia? (Nie jestem dobry w htaccess!)

To nie działa:

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

Czy muszę to zrobić w kodzie źródłowym WordPress? Nie chcę!

Odpowiedzi:


16

Ten jest właściwie dość łatwy. Kiedy deklarujesz typ swojego posta za pomocą register_post_type , musisz dodać nowy argument dla „has_archive”.

Więc dodasz coś do efektu:

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

Następnie przejdź do Ustawienia> Permalinki, aby je opróżnić i powinno działać. Przetestowałem to lokalnie i wydaje się, że jest to sposób na automatyczne wygenerowanie strony archiwum pod innym adresem URL. Następnie powinieneś być w stanie utworzyć stronę przy ślimaku CPT.


To przestało działać, ale udało mi się to naprawić, przypisując „has_archive” do dowolnego tekstu i zmieniając nazwę pliku mojej strony na numer kategorii.
Warwick

7

Teraz dostępna jest również prosta, 1-plikowa wtyczka, autorstwa HumanMade folk;

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

(Meta: Wiem, że odpowiedzi z linkami nie są na ogół świetne, ale nie chcę po prostu kopiować i wklejać kodu źródłowego tej odpowiedzi do odpowiedzi. Jaka jest najlepsza strategia dla tego typu rzeczy?)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.