Istnieje wcześniejszy post o podobnym tytule, ale nie zagląda on do WordPressa 3.3, co jest ważne, ponieważ 3.3 reklamuje się ciekawie: „Używaj struktury bezpośredniego łącza do nazwy bez ograniczenia wydajności”
Problem z Wordpress 3.2 i wcześniejszymi polegał na tym, że najpierw przeglądał nazwy stron, a następnie 404. Najpierw nie sprawdzał arbitralnych typów postów. 3.3 z drugiej strony muszą wyglądać typy postów, potem strony, a na koniec 404 (ponieważ reklamuje tę funkcję). To sugeruje, że niestandardowe typy postów bez ślimaka powinny być proste , jeśli post_type=post
gdzieś nie kodują .
Nie mogę jednak znaleźć rozwiązania specyficznego dla 3.3.
Pytanie : Jak mogę zdefiniować permalink struct "/% postname% /" dla dowolnego niestandardowego typu postu "xyz"?
Dzięki.
źródło
Odpowiedzi:
W WP 3.3 nie jest to łatwe, chyba że oszukasz reguł przepisywania w odpowiednim miejscu i sprawisz, że wp_rewrite sądzi, że w interfejsie używane są pełne reguły. Poniższa klasa działa.
źródło
Święte kluczyki do samochodu!
Myślę, że to działa. To prawie działa, jest bardzo proste, tylko jedna linia:PS Jeśli spróbujesz tego w domu, po dodaniu tej jednej linii Idź do „Ustawienia” -> „Permalinks” i zapisz zmiany, odświeży permalinki.
Czytałem
register_post_type()
kod źródłowy WP i znalazłem wiersz:Nie trzeba dodawać, ale bez ślimaka doszedłem do wniosku, że powinno działać
i tak się stało. Nawet edycja bezpośredniego linku pod tytułem w edytorze działa poprawnie!Aktualizacja: To przerywa bezpośrednie linki do strony, powrót do tablicy kreślarskiej ...
źródło
odpowiedź prettyboymp jest prawie taka sama, jak wczoraj, ale nie jestem z tego zadowolona. Odpowiedź prettyboymp ma jedną wadę, nie działa, gdy /% postname% / jest używany jednocześnie na wielu typach postów.
Oto moja odpowiedź, która również analizuje bieżącą strukturę i tworzy tablicę typów postów, na których można cofnąć. Jest w tym także jedna wada, jeśli dwa typy postów mają ten sam ślimak i oba są /% postname% /, to pokazuje oba.
źródło
Stworzyłem rozwiązanie i nie mogłem znaleźć z nim problemu. Spróbuj mi powiedzieć, jeśli znajdziesz problem
Zmień „jemek” za pomocą nazwy typu posta.
źródło
Ten link powinien odpowiedzieć na twoje pytanie:
http://ottopress.com/2011/how-the-postname-permalinks-in-wordpress-3-3-work/
źródło
Najczystszą odpowiedzią, jaką mogłem wymyślić (buduję wtyczkę, która naprawdę potrzebuje niestandardowego typu postu bez żadnych dodatkowych informacji) jest użycie niestandardowego szablonu strony zamiast niestandardowego typu posta.
W ten sposób Twój „niestandardowy typ postu” może mieć adresy URL takie jak / cokolwiek, bez konieczności martwienia się o wchodzenie na strony lub bezpośrednie linki do postów.
Aby to zrobić, skończyło się na tym, że:
To pozwoliło mi na:
Pobierz listę stron korzystających z szablonu strony za pomocą WP_Query
Dodaj specjalne przetwarzanie, podpinając się do add_meta_boxes, aby przechowywać moje niestandardowe dane
Dodaj mój szablon niestandardowy do wyświetlanych przez filtrowanie page_attributes_dropdown_pages_args, theme_page_templates, wp_insert_post_data i template_include zobacz ten post na temat dodawania szablonów stron do wtyczki
Wady
Oczywiście, chociaż nie tupie to na linkach do stron lub postów, ma kilka oczywistych wad.
Brak archiwum Nie będziesz mieć archiwum (jeśli chcesz), ale można to rozwiązać, tworząc inny szablon strony, aby narysować archiwum wszystkich stron przy użyciu niestandardowego szablonu.
Zarządzane w ramach stron Nie masz przyjemnej nawigacji po lewej stronie administratora, która grupuje wszystkie typy postów razem.
Można to częściowo rozwiązać, dodając filtr do listy stron (aby umożliwić filtrowanie według używanego szablonu strony), pokazując dowolny szablon strony użyty w nowej kolumnie itp.
Biorąc to pod uwagę, chciałem czegoś, co nie sprawi, że użytkownicy będą się zastanawiać, dlaczego utworzyli nową stronę niestandardową i stwierdzili, że albo nie mogą już dotrzeć do normalnych stron, albo nowa strona niestandardowa spowodowała zniknięcie istniejącej strony w ich witrynie.
Wiem, że to nie jest prawdziwe rozwiązanie, ale jest to alternatywa, która zadziałała doskonale na moje potrzeby.
źródło