WordPress wordt geleverd met vijf standaard post types: postpageattachmentrevision, en menu.

Tijdens het ontwikkelen van uw plugin, kunt u uw eigen specifieke inhoudstype maken: bijvoorbeeld producten voor een e-commerce website, opdrachten voor een e-learning website, of films voor een review website.

Met behulp van Custom Post Types, kunt u uw eigen post type registreren. Zodra een aangepast post type is geregistreerd, krijgt het een nieuw top-level administratief scherm dat kan worden gebruikt om posts van dat type te beheren en te maken.

Om een nieuw post type te registreren, gebruik je de register_post_type() functie.

waarschuwing:
We raden je aan om aangepaste post types in een plugin te plaatsen in plaats van in een thema. Dit zorgt ervoor dat gebruikersinhoud overdraagbaar blijft, zelfs als het thema wordt gewijzigd.

Het volgende minimale voorbeeld registreert een nieuw post type, Producten, dat in de database wordt geïdentificeerd als wporg_product.

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __('Products', 'textdomain'),'singular_name' => __('Product', 'textdomain'),),'public' => true,'has_archive' => true,));}add_action('init', 'wporg_custom_post_type');

Expand full source codeCollapse full source code

Bezoek de referentiepagina voor register_post_type() voor de beschrijving van de argumenten.

Waarschuwing:
U moet register_post_type() oproepen vóór de admin_init hook en na de after_setup_theme hook. Een goede haak om te gebruiken is de init actiehaak.

Naming Best Practices #Naming Best Practices

Het is belangrijk dat u uw post type functies en identifiers voorziet van een kort voorvoegsel dat overeenkomt met uw plugin, thema, of website.

Waarschuwing:
Zorg ervoor dat uw aangepaste post type identificatie niet langer is dan 20 tekens, aangezien de post_type kolom in de database momenteel een VARCHAR veld van die lengte is.

Waarschuwing:
Gebruik geen wp_ als identificatiecode om compatibiliteit met de toekomst te garanderen – deze wordt gebruikt door WordPress core.

Waarschuwing:
Als uw identificatiecode te algemeen is (bijvoorbeeld: “product“), kan deze conflicteren met andere plugins of thema’s die ervoor hebben gekozen om dezelfde identificatiecode te gebruiken.

Note:
Het oplossen van dubbele post type identificatiecodes is niet mogelijk zonder een van de conflicterende post types uit te schakelen.

Top

URLs #URLs

Een aangepast post type krijgt zijn eigen slug binnen de site URL structuur.

Een post van het type wporg_product zal standaard de volgende URL structuur gebruiken: http://example.com/wporg_product/%product_name%.

wporg_product is de slug van uw aangepaste post type en %product_name% is de slug van uw specifieke product.

De uiteindelijke permalink zou zijn: http://example.com/wporg_product/wporg-is-awesome.

U kunt de permalink zien in het bewerkingsscherm voor uw aangepaste post type, net als bij standaard post types.

Een aangepaste slug voor een aangepast post type #Een aangepaste slug voor een aangepast post type

Om een aangepaste slug voor de slug van uw aangepaste post type in te stellen hoeft u alleen een sleutel => waardepaar toe te voegen aan de rewrite sleutel in de register_post_type() argumenten array.

Voorbeeld:

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __( 'Products', 'textdomain' ),'singular_name' => __( 'Product', 'textdomain' ),),'public' => true,'has_archive' => true,'rewrite' => array( 'slug' => 'products' ), // my custom slug));}add_action('init', 'wporg_custom_post_type');

Expand full source codeCollapse full source code

Het bovenstaande zal resulteren in de volgende URL-structuur: http://example.com/products/%product_name%

Waarschuwing:
Het gebruik van een generieke slug zoals products kan mogelijk conflicteren met andere plugins of thema’s, dus probeer er een te gebruiken die specifieker is voor uw inhoud.

Note:
In tegenstelling tot de custom post type identifiers, kan het duplicate slug probleem eenvoudig worden opgelost door de slug te veranderen voor een van de conflicterende post types.

Als de plugin auteur een apply_filters() aanroep op de argumenten heeft gezet, kan dit programmatisch worden gedaan door de argumenten te overschrijven die via de register_post_type() functie worden opgegeven.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *