WordPress metabox onder de titel, boven editor

Soms is het handig om tussen de titel en de TinyMCE editor een WordPress metabox te hebben. Bijvoorbeeld wanneer je een subtitel onder je titel wil hebben of als je een afbeelding tussen de titel en de tekst hebt staan.
Dit laatste was het geval voor een website die ik voor een vriendin aan het maken ben. Het heeft wat zoeken op Google gekost, maar op Stackexchange.com heb ik de oplossing gevonden. Via deze tutorial wil ik dat graag met je delen.

De oplossing

Het is eigenlijk heel simpel. Laten we eerst een metabox aanmaken. Ik neem aan dat je weet hoe dit moet. Zo niet dan kan je wederom via Google vele tutorials hierover vinden.
Laten we beginnen met het aanmaken voor een metabox, alleen voor pagina's in mijn geval:

1 2 3 4 56 7 8 9 1011 12 
function meta_box_picture() {     add_meta_box(     'page-picture-meta-box',      // ID attribute of metabox     'Pagina afbeelding',          // Title of metabox visible to user    'picture_meta_box_callback',  // Function that prints box in wp-admin     'page',                       // Show box for posts, pages, custom, etc.     'up',                         // Where on the page to show the box, change to something other then normal, advanced or side     'high'                        // Priority of box in display order   );} add_action( 'add_meta_boxes', 'meta_box_picture' );

Het belangrijke deel is lijn 8. Hier geef je aan waar op post.php de meta-box geplaatst moet worden. Normaal gesproken heb je hierbij de keuze uit Normal, Side of Advanced. Maar hier gaan we iets anders invullen. Het maakt niet uit wat in principe, maar ik heb gekozen voor het woord Up. Dat leek mij wel logisch 🙂

Nu weet WordPress natuurlijk niet wat hij moet doen met een metabox van het type Up. Dat gaan we WordPress nu vertellen:

14 15 16 17 1819 20 
function my_upper_meta_box() {     global $post, $wp_meta_boxes;                         // Get the globals   do_meta_boxes( get_current_screen(), 'up', $post );   // Output the "up" meta boxes  } add_action( 'edit_form_after_title', 'my_upper_meta_box' );

Nu zal een meta box van het type 'up' tussen de titel en TinyMCE tekst editor geplaatst worden. En dat was alles!

The end result

Het eindresultaat

Nu moet je natuurlijk nog wel de code schrijven voor de inhoud en opslaan van de meta box, maar dat kan je in de eerder genoemde tutorials wel vinden als je niet weet hoe dat moet. En wie weet, misschien schrijf ik ooit zelf nog eens zo'n tutorial.. 😉

 

  • Ik heb nooit een opleiding gehad in C, Javascript of PHP, alles wat ik weet komt van Youtube en Google.
    Ik weet dat mijn code vaak korter kan, maar ik geef de voorkeur aan leesbaarheid zodat ik na een jaar mezelf nog snap. Mochten er andere fouten in zitten dan hoor ik het graag.