WordPress domyślnie obsługuje wpisy i strony, ale czasami potrzebujemy czegoś więcej – np. „Portfolio”, „Opinie klientów” czy „Projekty”. Do tego służą Custom Post Types (CPT), czyli własne typy wpisów. Dzięki nim możesz rozszerzyć funkcjonalność strony i lepiej zarządzać treścią.
1. Czym jest Custom Post Type?
Custom Post Type to niestandardowy typ treści, który zachowuje się podobnie do wpisów i stron. Pojawia się w menu panelu administracyjnego i pozwala oddzielić np. artykuły blogowe od portfolio czy produktów.
2. Rejestracja prostego Custom Post Type
Dodaj poniższy kod do pliku functions.php w motywie potomnym lub we własnej wtyczce:
function utworz_portfolio_post_type() {
register_post_type('portfolio', array(
'labels' => array(
'name' => __('Portfolio'),
'singular_name' => __('Projekt'),
'add_new_item' => __('Dodaj nowy projekt'),
'edit_item' => __('Edytuj projekt')
),
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-portfolio',
'supports' => array('title', 'editor', 'thumbnail')
));
}
add_action('init', 'utworz_portfolio_post_type');
Po dodaniu kodu w panelu WordPress pojawi się nowa sekcja Portfolio, w której możesz tworzyć projekty.
3. Dodawanie niestandardowych pól
Możesz też dodać własne pola (custom fields), np. link do projektu:
add_action('add_meta_boxes', function() {
add_meta_box('portfolio_link', 'Link do projektu', function($post) {
$value = get_post_meta($post->ID, '_portfolio_link', true);
echo '<input type="text" name="portfolio_link" value="' . esc_attr($value) . '" style="width:100%">';
}, 'portfolio');
});
add_action('save_post', function($post_id) {
if (array_key_exists('portfolio_link', $_POST)) {
update_post_meta($post_id, '_portfolio_link', sanitize_text_field($_POST['portfolio_link']));
}
});
Teraz w edycji projektu będziesz mógł dodać dodatkowy link.
4. Wyświetlanie CPT na stronie
Aby wyświetlić wpisy z „Portfolio”, użyj pętli WP_Query:
$query = new WP_Query(array('post_type' => 'portfolio'));
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
echo '<h2>' . get_the_title() . '</h2>';
the_content();
}
wp_reset_postdata();
}
5. Dlaczego warto korzystać z CPT?
- Lepsza organizacja treści
- Oddzielenie różnych typów danych (np. blog vs. portfolio)
- Możliwość rozbudowy o własne taksonomie i pola
- Profesjonalna struktura strony
Podsumowanie
Custom Post Types to jedno z najpotężniejszych narzędzi WordPress. Dzięki nim można stworzyć w pełni rozbudowane systemy treści – od portfolio, przez FAQ, aż po katalog produktów.