Admin Columns toevoegen aan WordPress zonder plugins

Admin Columns toevoegen aan WordPress zonder plugins

Admin Columns toevoegen aan WordPress zonder plugins 2542 1429 Thibault

Custom Post Types en Custom Fields in WordPress zijn een enorm krachtige manier om het platform beter af te stemmen op jouw specifieke noden. Met aangepaste ‘Admin Columns’ visualiseer je die makkelijk en overzichtelijk in het WordPress dashboard.

Opzet

Voor deze demo heb ik een lege WordPress installatie opgezet. Ik heb een Custom Post Type “belverzoeken” gemaakt en hier een custom field aan gekoppeld genaamd “telefoonnummer”.

De uitdaging

In een vorige tutorial hebben we een front-end formulier gekoppeld aan een custom post type “belverzoeken”. Nu willen we deze functionaliteit verder uitbreiden door in het WordPress dashboard ook meteen het telefoonnummer te tonen zonder dat we de post moeten openklikken.

wordpress custom admin columns
Dit is het resultaat dat we voor ogen hebben: een custom column dat wordt gevuld met de waarde van een custom field.

De oplossing

Er zijn twee verschillende stukken code die je zal moeten gebruiken om custom admin columns te maken. Het eerste stuk code ontfermt zich over het aanmaken van de kolommen, het tweede stuk vult de kolommen met data. Deze code kan simpelweg in je functions.php gaan.

Admin kolommen aanmaken

Een admin column is steeds gekoppeld aan een custom post type. In onderstaande code zal je dus ‘belverzoek’ moeten wijzigen naar jouw eigen custom post type. We maken gebruik van de WordPress filter manage_posttype_post_columns om de extra kolommen aan te maken.

function add_columns_belverzoek ( $columns ) {
    return array_merge ( $columns, array (
        'telefoonnummer' => 'Telefoonnummer' ,
        'belverzoek_status'   => 'Status' 
    ) );
}
add_filter ( 'manage_belverzoek_posts_columns', 'add_columns_belverzoek' );

In de functie ‘add_columns_belverzoek’ krijgen we dus een array van alle kolommen. Met de PHP-functie array_merge breiden we die kolommen uit met twee nieuwe kolommen waar we een key en value voor geven. De key is hoe we straks de kolom gaan vullen, de value is het label dat wordt gebruikt in het WordPress dashboard.

Ikzelf gebruik maar 1 extra kolom (telefoonnummer), maar ik heb in bovenstaande code een extra veld toegevoegd ter demonstratie.

wordpress custom admin columns
Na het toevoegen van de code zien we de extra kolom meteen verschijnen. We zullen echter nog de kolom moeten voorzien van de relevante data.

Kolommen vullen

De kolom verschijnt nu in je WordPress dashboard bij je Custom Post Type, maar nergens zal je een waarde zien. Logisch, want we hebben enkel de kolom aangemaakt zonder enige data te voorzien voor deze kolom. Dat doen we in een afzonderlijke functie door gebruik te maken van manage_posttype_posts_custom_column. Belangrijk hier is om ‘posttype’ te vervangen door jouw custom post type waarvoor je de custom columns aanmaakt.

function belverzoek_custom_columns ( $column, $post_id ) {
    switch ( $column ) {
        case 'telefoonnummer':
            echo get_post_meta ( $post_id, 'telefoonnummer', true );
            break;
        case 'belverzoek_status':
            echo get_post_meta ( $post_id, 'belverzoek_status', true );
            break;
    }
}
add_action ( 'manage_belverzoek_posts_custom_column', 'belverzoek_custom_columns', 10, 2 );

In bovenstaande functie overlopen we alle kolommen. Als de key van de kolom overeenkomt met de key dat we in de vorige functie hebben opgegeven, dan vullen we deze kolom met de data. In mijn geval moet ik het custom field met key ’telefoonnummer’ ophalen. Concreet ziet dat er zo uit:

wordpress custom admin columns

Laat een reactie achter