autor

Własne typy wpisów w WordPressie. Do czego mogą się nam przydać jest jasne, ale kiedy ich używać i jak je zainicjować? Dla niektórych jest to temat prosty, bo wystarczy zainstalować wtyczkę, która nam taki nowy typ wpisu doda. Jednak jest to kolejna wtyczka, której prawdopodobnie możliwości nie wykorzystamy nawet w 30%. Dlatego, pozwolę sobie nakreślić sytuację, która miała miejsce ostatnio, kiedy kończyłem projekt dla Natalii. Musiałem taki nowy typ wpisu dodać, ale zrobiłem to za pomocą kodu. Dlaczego za pomocą kod, wyjaśnię w dalszej części wpisu, natomiast teraz nakreślę całą sytuację.

Kończąc już wdrażanie strony internetowej, a właściwie platformy szkoleniowej o nazwie Nati Care, zaszła potrzeba stworzenia dodatkowego typu wpisu. Na stronie, która jest tak naprawdę platformą szkoleniową istnieje możliwość konsultacji z Polskimi ekspertami z różnych dziedzin. Na początku projekt zakładał kilku takich ekspertów. Podczas prowadzenia rozmów o współpracę z potencjalnymi chętnymi ekspertami był bardzo pozytywny odzew i chętnych cały czas przybywa. W związku z tym zaistniała potrzeba stworzenia nowego typu wpisu jakim jest Ekspert. Dzięki temu będzie można wyświetlić stronę ze wszystkimi ekspertami, a po wybraniu Eksperta wyświetlić informacje o nim. Między innymi o tym, jak może nam pomóc i jak możemy się z nim skontaktować.

Jak to zrobić, jak dodawać własne typy wpisów w WordPressie bez pomocy wtyczek?

Można to zrobić na dwa sposoby, które różni jedynie katalog, w jakim umieszczony jest plik php z funkcją:

  • pierwszy z nich to napisać wtyczkę, która doda nam odpowiedni typ wpisu i umieścić go w katalogu plugins
  • drugi sposób praktycznie identyczny, lecz plik funkcji umieszczony w innym miejscu niż folder wtyczek.

Ja użyłem do tego drugiego rozwiązania. Ale od początku. Najpierw kod, który dodaje nam nowy typ wpisu:

//dodanie nowego typu posta - EKSPERT
function naticare_eksperci() {
    register_post_type('ekspert', array(
        'show_in_rest' 	=> true, // włączenie nowego edytora WordPress - w wielkim skrócie
        'supports' 	=> array('title', 'editor', 'thumbnail', 'excerpt'), //tablica z wartościami jakie mają być widoczne w nowym typie wpisu
        'rewrite' 	=> array('slug' => 'eksperci'), // adres dla strony z archiwum
        'has_archive' 	=> true, //włączenie strony z archiwum dla nowego typu posta
        'public' 	=> true, // Dzięki temu post będzie widoczny dla redaktorów i innych przeglądających stronę
        'labels' 	=> array(
            'name' 		=> 'Eksperci', //nazwa nowego typu postu wyświetlana m.in. w PA
            'add_new_item' 	=> 'Dodaj Nowego Eksperta', //Tekst wyświetlany nad polem "Dodaj tytuł" przy wyłączonym show_in_rest
            'edit_item' 	=> 'Edytuj Eksperta', //Tekst wyświetlany nad polem "Dodaj tytuł" przy wyłączonym show_in_rest podczas edycji eksperta
            'all_items' 	=> 'Wszyscy Eksperci', //nazwa dla wyświetlenia wszystkich dodanych ekspertów w PA
            'singular_name' => 'Eksperta' // pojedyncza nazwa dla dodania nowego eksperta w pasku administracyjnym na gorze strony pod przyciskiem "+Dodaj"
        ),
        'menu_icon' 	=> 'dashicons-businessman', // ikona dla nowego typu postu
    ));
}
add_action('init', 'naticare_eksperci'); //zainicjowanie nowego typu wpisu

Plik nazywamy wg własnego uznania, ja nazwałem go nowe-typy-wpisow.php

Ikony dla naszych własnych typów wpisów w WordPressie możemy wybrać na stronie: developer.wordpress.org

Gdzie zapisać plik z funkcją?

Plik z kodem wrzucamy do folderu wp-content/mu-plugins. Dlaczego właśnie tam, a nie np. do pliku functions.php w motywie potomnym? Zapisujemy go w tym katalogu ponieważ, jeśli wrzucimy kod do pliku finctions.php zapisanego w katalogu motywu potomnego, wówczas po zmianie motywu stracimy nasz dodatkowy typ wpisu. Natomiast w przypadku, kiedy wrzucimy nasz plik z funkcją do folderu mu-plugins, skrypt uruchomi się automatycznie i zainicjuje nam nowy typ wpisu niezależnie od ustawionego motywu. Do pliku functions.php w motywie potomnym wrzucamy jedynie kod, który wpływa na wygląd samego motywu.

Co w przypadku, gdy nie masz katalogu mu-pligins?

Jeżeli nie widzisz takiego katalogu u siebie na serwerze musisz go stworzyć. Folder o nazwi mu-plugins musi znajdować się w katalogu wp-content.

Można również wrzucić plik z funkcją do katalogu z wtyczkami i włączyć ją w panelu administracyjnym w zakładce Wtyczki. Mimo tej możliwości wybrałem sposób drugi, który automatycznie uruchamia skrypt. Sposób ten ogranicza możliwość włączenia lub wyłączenia tej funkcji przez klienta, który może przez przypadek wyłączyć wtyczkę nie mając pojęcia o konsekwencjach.

Dlaczego nie zdecydowałem się na użycie gotowej wtyczki do tworzenia nowych typów wpisów?

Jestem zwolennikiem ograniczania ilości wtyczek w WordPressie. Poza tym, jeśli mogę zrobić coś bez użycia wtyczek, za pomocą samego kodu, to właśnie tak robię. Staram się stosować własne rozwiązania i unikać często gotowych i napakowanych wieloma funkcjami wtyczek, których możliwości nie wykorzystam w 100%. Tak było w tym przypadku, potrzebowałem jedynie dodatkowego typu wpisu, bez wykorzystania taksonomii.

Jeszcze jedna, bardzo ważna rzecz

Po dodaniu własnego typu wpisu do WordPressa może zdarzyć się tak, że na stronie archiwum danego wpisu pojawi się błąd informujący o tym, że dana strona nie istnieje. Naprawienie tego jest banalnie łatwe. Wystarczy w panelu administracyjnym przejść do Ustawienia » Bezpośrednie odnośniki i kliknąć na dole strony Zapisz. To wszystko. Po odświeżeniu strony z archiwum wpisów wyświetlą nam się wszystkie dodane już posty.

Podziel się

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Bądź na bieżąco z nowymi wpisami

Leave a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Darmowy materiał dla Ciebie

strony i  sklepy internetowe

Wypełnij poniższy formularz, aby otrzymać darmowego eBooka.

Zaloguj się

Nie masz jeszcze konta? Zarejestruj się