Jak łatwo dodać niestandardowe typy postów w WordPressie
Objaśnienie
Tworzenie niestandardowego typu wpisu w WordPressie pozwala na dodanie nowych typów treści poza domyślnymi wpisami i stronami. W tym przykładzie dodajemy niestandardowy typ wpisu o nazwie Książka.
Oto, co robi ten kod:
- Etykiety: To są nazwy i opisy, które zobaczysz w obszarze administracyjnym WordPressa. Na przykład "Dodaj nową książkę" lub "Edytuj książkę".
- Publiczny: Ustawienie tego na true sprawia, że książki są widoczne na froncie Twojej strony.
- Możliwość zapytań publicznych: Pozwala na zapytania i wyświetlanie książek na Twojej stronie.
- Wyświetl UI: Umożliwia interfejs użytkownika w obszarze administracyjnym do zarządzania książkami.
- Wyświetl w menu: Dodaje książki do menu administracyjnego dla łatwego dostępu.
- Przepisz: Zmienia strukturę URL, aby zawierała 'book', co czyni ją bardziej czytelną (np. yoursite.com/book/).
- Ma archiwum: Pozwala na posiadanie strony archiwum dla wszystkich książek, podobnie jak wpisy na blogu mają archiwum.
- Obsługuje: Określa, jakie funkcje będą wspierane przez książki, takie jak tytuł, edytor i miniatura.
Po dodaniu tego kodu do pliku functions.php Twojego motywu, zobaczysz nową sekcję Książki w menu administracyjnym WordPressa. Możesz dodawać, edytować i zarządzać książkami tak jak zwykłymi wpisami.
Kod
<?php
// Hook into the 'init' action
add_action('init', 'wp_dudecom_register_custom_post_type');
/**
* Register a custom post type called 'book'.
*
* @return void
*/
function wp_dudecom_register_custom_post_type() {
$labels = array(
'name' => _x('Books', 'Post type general name', 'textdomain'),
'singular_name' => _x('Book', 'Post type singular name', 'textdomain'),
'menu_name' => _x('Books', 'Admin Menu text', 'textdomain'),
'name_admin_bar' => _x('Book', 'Add New on Toolbar', 'textdomain'),
'add_new' => __('Add New', 'textdomain'),
'add_new_item' => __('Add New Book', 'textdomain'),
'new_item' => __('New Book', 'textdomain'),
'edit_item' => __('Edit Book', 'textdomain'),
'view_item' => __('View Book', 'textdomain'),
'all_items' => __('All Books', 'textdomain'),
'search_items' => __('Search Books', 'textdomain'),
'parent_item_colon' => __('Parent Books:', 'textdomain'),
'not_found' => __('No books found.', 'textdomain'),
'not_found_in_trash' => __('No books found in Trash.', 'textdomain'),
'featured_image' => _x('Book Cover Image', 'Overrides the “Featured Image” phrase for this post type. Added in 4.3', 'textdomain'),
'set_featured_image' => _x('Set cover image', 'Overrides the “Set featured image” phrase for this post type. Added in 4.3', 'textdomain'),
'remove_featured_image' => _x('Remove cover image', 'Overrides the “Remove featured image” phrase for this post type. Added in 4.3', 'textdomain'),
'use_featured_image' => _x('Use as cover image', 'Overrides the “Use as featured image” phrase for this post type. Added in 4.3', 'textdomain'),
'archives' => _x('Book archives', 'The post type archive label used in nav menus. Default “Post Archives”. Added in 4.4', 'textdomain'),
'insert_into_item' => _x('Insert into book', 'Overrides the “Insert into post”/”Insert into page” phrase (used when inserting media into a post). Added in 4.4', 'textdomain'),
'uploaded_to_this_item' => _x('Uploaded to this book', 'Overrides the “Uploaded to this post”/”Uploaded to this page” phrase (used when viewing media attached to a post). Added in 4.4', 'textdomain'),
'filter_items_list' => _x('Filter books list', 'Screen reader text for the filter links heading on the post type listing screen. Default “Filter posts list”/”Filter pages list”. Added in 4.4', 'textdomain'),
'items_list_navigation' => _x('Books list navigation', 'Screen reader text for the pagination heading on the post type listing screen. Default “Posts list navigation”/”Pages list navigation”. Added in 4.4', 'textdomain'),
'items_list' => _x('Books list', 'Screen reader text for the items list heading on the post type listing screen. Default “Posts list”/”Pages list”. Added in 4.4', 'textdomain'),
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array('slug' => 'book'),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
);
register_post_type('book', $args);
}
?>
Instrukcja
Lokalizacja pliku: Dodaj kod do pliku functions.php
swojego motywu lub do pliku własnej wtyczki, jeśli wolisz trzymać to oddzielnie od motywu.
Wymagania wstępne: Do tej implementacji nie są wymagane dodatkowe wtyczki ani ustawienia.
Kroki implementacji:
- Dostęp do plików WordPress: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby uzyskać dostęp do plików instalacji WordPress.
- Znajdź plik
functions.php
: Przejdź dowp-content/themes/twojego-aktywnego-motywu/
i otwórz plikfunctions.php
do edycji. - Wstaw kod: Skopiuj podany fragment kodu i wklej go na końcu pliku
functions.php
. Upewnij się, że nie wklejasz go wewnątrz żadnej istniejącej funkcji ani tagu PHP. - Zapisz zmiany: Zapisz plik
functions.php
i zamknij edytor. - Zweryfikuj w panelu administracyjnym WordPress: Zaloguj się do swojego panelu administracyjnego WordPress. Powinieneś teraz zobaczyć nowy element menu oznaczony jako Książki w menu administracyjnym.
- Dodaj nowe książki: Kliknij na Książki w menu administracyjnym, aby rozpocząć dodawanie, edytowanie i zarządzanie wpisami swojego niestandardowego typu postu.
Jeśli napotkasz jakiekolwiek problemy lub potrzebujesz dalszej pomocy w zakresie niestandardowych typów postów lub innych zaawansowanych funkcji WordPress, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.