Code snippets

Extra velden toevoegen aan je custom post type

Als je goed hebt nagedacht over je website structuur, dan heb je waarschijnlijk al een paar custom post types gedefinieerd, zoals testimonials, klanten, boeken, producten. Maar deze post types hebben nog steeds maar een paar vaste eigenschappen, die ze hebben geerfd van de pages en posts uit WordPress: een titel, tekst, afbeelding, en nog een paar.

Voor veel custom post types zal dit niet voldoende zijn, of juist teveel. Het teveel kan je natuurlijk weglaten in de custom posttypes code. Maar als je extra velden wilt toevoegen is de CMB2 plugin ontzettend handig (Custom Meta Boxes).

Installeer deze als plugin (je kan hem ook in een folder in je thema of eigen plugin plaatsen, maar dan heb je niet de voordelen van het updaten van de plugin).

Je kan nu een pagina uit de plugin, example-functions.php, in je eigen plugin of theme zetten. Verwijder wel de code waar boven staat “if using the plugin from wordpress.org, remove this”.

Include deze pagina nu in je hoofdbestand van je plugin of theme.

Er staan een hele hoop voorbeelden in dit bestand, waardoor je eigenlijk direct kan zien wat je er allemaal mee kan doen.

Een paar voorbeelden van de mooie dingen de CMB2 kan:

  • Dropdowns of checkboxes gebaseerd op taxonomieen
  • Conditionele velden
  • Color picker
  • Embedded media
  • Multiple uploads, sorteren binnen deze afbeeldingen
  • Datum/tijd selectie, inclusief mooie datepicker
  • Repeatable fields: klik op toevoegen en er wordt dynamisch een veld toegevoegd

Ontzettend flexibel. Heb je nou heel erg veel velden, overweeg dan tabs toe te voegen met Tabify edit screen.

Waarom geen “gewone” plugin hiervoor gebruiken? Die zijn er natuurlijk ook, maar worden dan in de database geconfigureerd. Deze plugin maakt je code database onafhankelijk: je kan je code in een nieuw project invoegen, en het werkt, zonder databaseconfiguratie. Ook handig als je in een development/productie situatie werkt, waarin je nieuwe wijzigingen wil publiceren naar de productie omgeving zonder de database te hoeven vervangen.

Related Articles

Laat een reactie achter