Słowniczek

Czym sa WordPress custom post types?

20 maja 2026

WordPress custom post type (CPT) to typ tresci poza pieciaoma wbudowanymi (post, page, attachment, revision, nav_menu_item). CPTs pozwalaja przechowywac ustrukturyzowane tresci jak produkty, wydarzenia, nieruchomosci, przepisy, opinie czy portfolio, kazdy z wlasnym menu w panelu, ekranem edycji, taksonomiami, struktura URL i hierarchia szablonow. Custom post types wprowadzono w WordPress 2.9 (grudzien 2009) i staly sie standardem wraz z register_post_type() w WordPress 3.0 (czerwiec 2010). CPT rejestruje sie w PHP poprzez register_post_type( $slug, $args ) na hooku init lub wizualnie poprzez pluginy jak Custom Post Type UI (ponad 700.000 aktywnych instalacji), Pods (ponad 100.000) i Meta Box (ponad 400.000). Od WordPress 5.0 (grudzien 2018) CPTs moga wlaczyc edytor blokow przez show_in_rest=true, co eksponuje je takze w REST API pod /wp-json/wp/v2/<slug>. WooCommerce rejestruje CPT product plus shop_order, shop_coupon, product_variation i dziesiec innych. The Events Calendar uzywa tribe_events. ACF Pro moze rejestrowac CPTs przez swoj UI od wersji 6.1 (marzec 2023). Custom post types pozostaja w 2025 trzonem kazdej strony WordPress, ktora nie jest tylko blogiem.

Kiedy uzyc custom post type?

  • Produkty e commerce (WooCommerce).
  • Wydarzenia (Events Calendar tribe_events).
  • Nieruchomosci.
  • Portfolio.
  • Opinie, czlonkowie zespolu, FAQ.
  • Przepisy z danymi strukturalnymi.
  • Oferty pracy.

Jak zarejestrowac custom post type

add_action( 'init', 'mysite_register_product_cpt' );

function mysite_register_product_cpt() {
    $args = array(
        'labels'             => array( 'name' => 'Produkty', 'singular_name' => 'Produkt' ),
        'public'             => true,
        'show_in_rest'       => true,
        'has_archive'        => true,
        'rewrite'            => array( 'slug' => 'produkty' ),
        'supports'           => array( 'title', 'editor', 'thumbnail', 'excerpt' ),
        'menu_icon'          => 'dashicons-cart',
    );
    register_post_type( 'product', $args );
}

Wazne argumenty

ArgumentFunkcja
publicUstawia show_ui, publicly_queryable, exclude_from_search domyslnie.
show_in_restWymagane dla edytora blokow i endpointu REST.
has_archiveTworzy archiwum pod /<slug>/.
supportsAktywne funkcje: title, editor, thumbnail, excerpt, custom-fields.
rewriteSlug URL.

Plugin vs motyw

Zawsze rejestruj CPTs w pluginie, nigdy w motywie. W przeciwnym razie po zmianie motywu CPT znika z menu i tresc staje sie niedostepna.

Hierarchia szablonow

  • Single: single-product.php, single.php, singular.php, index.php.
  • Archive: archive-product.php, archive.php, index.php.

CPTs i REST API

Z show_in_rest => true CPT jest dostepny pod /wp-json/wp/v2/<rest_base>. Headless frontendy korzystaja z tego endpointu.

Pluginy rejestrujace CPTs bez kodu

  • Custom Post Type UI (ponad 700.000 instalacji).
  • ACF Pro 6.1+ (rejestruje CPTs od marca 2023).
  • Pods Framework.
  • Meta Box.
  • Toolset Types.

Wydajnosc

  • Cala zawartosc CPT mieszka w wp_posts. Wydajnosc identyczna do ~100.000 wierszy.
  • Nie rejestruj wiecej niz 20 do 30 CPTs na stronie.
  • Flush rewrite rules raz przy aktywacji pluginu.
  • Setki tysiecy wpisow: rozwaz wlasna tabele (WooCommerce HPOS od 8.0 sierpien 2023).

Czeste bledy

  • Zly hook. Uzywaj init.
  • Brak show_in_rest.
  • Brak flush rewrite rules.
  • Rejestracja w motywie.
  • Konflikt slug ze strona.

Co sprawdza InspectWP

InspectWP wykrywa custom post types w renderowanym HTML i odpytuje endpointy REST API, gdy sa wystawione. Raport identyfikuje popularnych dostawcow CPT (WooCommerce, Events Calendar, ACF).

Sprawdź teraz swoją stronę WordPress

InspectWP analizuje Twoją stronę WordPress pod kątem bezpieczeństwa, problemów SEO, zgodności z RODO i wydajności — za darmo.

Przeanalizuj stronę za darmo