Pagina 1 van 1

WordPress – Eigen kolommen toevoegen aan de Posts Admin pagina

WordPress – Eigen kolommen toevoegen aan de Posts Admin pagina
   0

Niet iedere WordPress admin gebruikt ze, maar je kunt zogenaamde custom fields toevoegen aan (onder andere) berichten (posts). Hier bij Tweaking4All gebruiken we dit bijvoorbeeld voor een korte titel, korte beschrijving en bijvoorbeeld de moeilijkheidsgraad van het onderwerp in een bericht.

Het probleem is dat ik soms weleens vergeet deze custom fields (zelf gedefinieerd veld) in te vullen en dan is het handig om de ingevulde waarden op de admin overzicht pagina van de berichten te zien zodat ik meteen zie wat ik vergeten ben.

het blijkt, hoewel niet gebruikelijk, dat dit eigenlijk helemaal niet zo moeilijk is, dus even een kort artikel hoe ik kolommen heb toegevoegd en verwijderd voor Tweaking4All.




Custom Fields Gebruiken

We kijken hier overigens alleen maar naar het gebruik met custom fields – het geeft echter een goed inzicht hoe dit werkt en kan eenvoudig aangepast worden voor andere zaken.

Wat zijn Custom Fields?

Misschien heb je het zelf al gezien, onderin het venster als je een bericht aan het bewerken bent: een speciaal vakje voor het toevoegen van custom fields. De meest admins gebruiken dit niet, maar als je zelf een thema aan het ontwikkelen bent dan kan dit rete handig zijn.

Tip 

Als je dit NIET ziet, klik dan op “Screen Options” (rechts boven in de pagina) en vink de optie “Custom Fields” aan.

WordPress - Custom Fields toevoegen

WordPress – Custom Fields toevoegen

Bij de implementatie van deze custom fields hebben ze iets moois gedaan. Als je al eens eerder een custom field hebt gedefinieerd dan verschijnt deze hier in een drop-down lijst zodat dit je een hoop type werk en type fouten bespaard!

Ophalen van de Waarde van een Custom Fields in jouw Code

Het ophalen van een waarde die opgeslagen is in een custom field is in WordPress erg eenvoudig en er zijn meerdere manieren om dit te doen.

De eenvoudigste manier is door het gebruik maken van de functie get_post_meta().

In onderstaande voorbeeld haal ik de waarde op van het custom field “DifficultyLevel” (moeilijkheidsgraad) welke ik op Tweaking4All gebruik om aan te geven hoe moeilijk de inhoud van een bericht is.


$difficulty_level = get_post_meta($postID,'DifficultyLevel',TRUE);

Ruw vertaald zegt deze regel: sla de waarde (indien beschikbaar) van het custom field “DifficultyLevel” van de post met ID “$postID” op in de variable “$difficulty_level“. De “TRUE” parameter zorgt ervoor dat alleen de eerste waarde als string terug komt (een lege string als het veld niet bestaat). Aan jou natuurlijk om met het resultaat iets te doen …

Let Op! 

Zelf als je in “the loop” zit moet je een post ID opgeven!
In “the loop” kun je dat het eenvoudigste doen met “get_the_ID()” welke de post ID terug geeft van de actieve post.

OK,… you get the picture …

Toevoegen en Verwijderen van Kolommen

Nu dat je weet wat custom fields zijn, hoe je ze maakt, en hoe je ze uitleest, tijd om ze zichtbaar te maken in kolommen op de berichten admin pagina.

Zoals eerder vermeld, ik gebruik op Tweaking4All 3 velden: ShortTitle, ShortText, en DifficultyLevel.

Ik wil ze in de overzichtspagina van de berichten zien en standaard zien we die natuurlijk niet.

WordPress - Voor we onze eigen kolommen toevoegen

WordPress – Voor we onze eigen kolommen toevoegen

De volgende afbeelding laat je zien dat ik de 3 kolommen heb toegevoegd en zels een kolom (“Author“) heb verwijderd.

WordPress - Eigen kolommen geplaatst en een kolom verwijderd

WordPress – Eigen kolommen geplaatst en een kolom verwijderd

Ik weet het … wat een zooi kolommen he? De meeste zijn van de Yoast SEO plugin …

De Code voor het Toevoegen en verwijderen van Kolommen

Als je al eens met PHP in het functions.php bestand hebt gespeeld dan is de volgende code eenvoudig te volgen.

De volgende code, nadat je het bet aangepast voor jouw doeleinden, wordt in het functions.php bestand geplaatst:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
add_filter('manage_posts_columns', 't4a_remove_unwanted_columns');
add_filter('manage_posts_columns', 't4a_add_post_columns', 5);
add_action('manage_posts_custom_column', 't4a_get_post_column_values', 5, 2);

// Kolommen verwijderen
function t4a_remove_unwanted_columns($defaults){
    unset($defaults['author']);
    return $defaults;
}

// Kolommen toevoegen
function t4a_add_post_columns($defaults){
    // field vs displayed title
    $defaults['DifficultyLevel'] = __('Level');
    $defaults['ShortTitle'] = __('ShortTitle');
    $defaults['ShortText'] = __('ShortText');
    return $defaults;
}

// Kolom waardes ophalen
function t4a_get_post_column_values($column_name, $postID){
    if($column_name === 'DifficultyLevel'){
        echo get_post_meta($postID,'DifficultyLevel',TRUE);
    }
    elseif($column_name === 'ShortTitle'){
        echo get_post_meta($postID,'ShortTitle',TRUE);
    }
    elseif($column_name === 'ShortText'){
        echo get_post_meta($postID,'ShortText',TRUE);
    }
}
Een korte uitleg van bovenstaande code:

Regel 1 – Voeg de kolom-verwijder functie (t4a_remove_unwanted_columns) toe aan de “manage_posts_columns” filter.
Dit is natuurlijk alleen maar nodig als je kolommen wilt verwijderen – in dit geval de “Author” kolom.
Gebruik je de functie niet dan kun je deze regel en de regels 610 weg laten.

Regel 2 – Voed de kolom-toevoeg functie (t4a_add_post_columns) toe aan de “manage_posts_columns” filter.
Het extra nummer (5) heeft te maken met prioriteit.

Regels 610 – De uiteindelijke functie om de kolom ‘author‘ te verwijderen van de array $defaults – WordPress geeft deze array aan deze functie met alle kolommen erin gespecificeerd.

Regels 1219 – Deze functie doet het omgekeerde: het voegt kolommen toe aan de $defaults array. De eerste waarde is de naam van de custom field (DifficultyLevel) en de tweede (Level) is de zichtbare titel voor de kolom.

Regels 2132 – Kolomen weergeven is natuurlijk niet genoeg. We moeten natuurlijk de de waardes van de custom fields weergeven.
Deze functie krijgt 2 waarden van WordPress: De kolom naam en de post ID.
Ik gebruik hier een wat rommelige ifelseif … maar dat is geen probleem als we over 3 kolommen praten.
In iedere “if” zien we dat de variable $column_name (kolom naam) vergeleken wordt met de custom field namen. Als de juiste naam gevonden wordt dan gebruiken we get_post_meta om de waarde van de custom field op te halen en weer te geven (zoals we voorheen besproken hebben).

Dat is alles … Toch best makkelijk he?

Donatie Opties


Donaties worden zeer gewaardeerd, maar zijn zeker niet vereist. Donaties worden gebruikt voor het dekken van kosten voor web-hosting en project materialen, en eventueel voor een drankje of een snack. Voor wie al gedoneerd heeft: Hartelijk dank! Het is werkelijk geweldig om te zien dat men onze artikelen en applicaties waardeert.

Reacties


Er zijn nog geen reacties geplaatst.
Je kunt jouw eigen opmerkingen plaatsen m.b.v. dit formulier, of een reactie op een opmerking plaatsen door op de "Reageer" knop te klikken.



Jouw Reactie ...

Vriendelijk verzoek om hier geen lange teksten te plaatsen (zoals source codes, log files of config files). Gebruik daarvoor het Forum.

Deel met anderen:
*
*
Houd me op de hoogte van nieuwe reacties (email).
       Gebruik jouw RSS reader om reacties te volgen.


Tweaking4All uses the free Gravatar service for Avatar display.
Tweaking4All zal nooit jouw email adres met anderen delen.