Plugin, beproefd en in gebruik (check feb 2019)

Pods

Pods zijn kleine stukjes inhoud: geen bericht en geen pagina. Je geeft zelf de velden op.

https://nl.wordpress.org/plugins/pods/

1. Enable de gewenste onderdelen/components

Advanced Content Types: was aanvankelijk de enige mogelijkheid, je kan hem nog steeds gebruiken. Maar hij wordt niet herkend door bijv. Word Points.
https://pods.io/docs/comparisons/compare-content-types/

2. Maak nu de pod en eventueel een pod voor de categorien

Voeg velden toe en versleep ze als je de volgorde wilt veranderen:

Sla de pod op; in de linkerbalk zie je hem nu staan; maak een paar nieuwe pods aan.

NB: voeg eventueel een aparte pod toe die je gebruikt als lijst met categorieen en koppel die daarna aan de pod die de categorie wil gebruiken. Leg de relatie tussen beide tabellen. zie video op
https://www.youtube.com/watch?v=RL5AP3bdisI&index=8&list=PLtaXuX0nEZk9dCVMQRmSptuJ6YdVzMkr5


Klik daarna op Advanced: in dit voorbeeld mochten meer categorieen gekozen worden

Bij plaatje hieronder: NB: voeg toe: /{@permalink}/
NB: let op: het pad voor de slash moet de naam van de overzichtspagina zijn.

De labels zijn voor vertalingen in het Nederlands.

anderen toestaan pods toe te voegen

Let erop in geval dat je anderen pods laat toevoegen: dat je bij de Roles and capabilities een vinkje zet bij de gebruikersrol die mag toevoegen en wijzigen. Anders is dit alleen aan de admin voorbehouden.

3. Vul wat detail records in, nu je de velden hebt.
Geef de pods inhoud: hover op de juiste pod in de zijbalk en klik dan op Add New.
4. Afbeeldingen. Maak templates voor zowel het overzicht in een lijst als voor laten zien van het record
NB: sinds 2018 gebruik ik de media gallery optie voor het laten zien van meerdere afbeeldingen.
Onderstaande code liet slechts 2 of 3 dezelfde afbeeldingen zien

[code] [before] <ul class="fotolijst">[/before] [each foto]

<li><a href="{@foto._src.large}">{@foto._img.thumbnail}</a></li>

[/each] [after]</ul>

[/after] [/code]

De code voor de gallery is heel eenvoudig. Slechts de naam van het veld.
In het voorbeeld

[code]{@foto}[/code]

.

Gebruik eventueel shortcodes in template
[code]define(‘PODS_SHORTCODE_ALLOW_SUB_SHORTCODES’,true);[/code]

Zet bovenstaande code in wp-config.php; standaard staat dit ingesteld op False.
Hierna kan je dus shortcodes gebruiken in een template.
En deze in functions.php

[code]function register_shortcodes() {
add_shortcode(‘pods_by_current_user’, ‘pods_by_current_user’);
}
add_action( ‘init’, ‘register_shortcodes’);[/code]

 

Geen limiet: limit=-1

Gebruik je geen template, dan is de shortcode:
[pods name=”tip” limit=”10″ orderby=”post_date DESC”][/pods]

6. Zorg ervoor dat en zijn eigen inzending achteraf kan wijzigen

Stel bij geavanceerd allen de velden in die de gebruiker mag zien. Verwijder  vooral het vinkje naast editor: dat maakt dat hij het standaard wordpress content veld niet meer ziet:

 
7. Maak het template voor de detailpagina, bijv verwante organisaties (vb verwanten1details)
Dit is alleen nodig als je wilt dat er geklikt kan worden op de hoofdpagina naar een detailrecord.. Heel belangrijk geef hem dezelfde naam als de lijstpagina en gevolgd door /*

NB: in principe zorgt je thema al voor een mooie layout.
Heb je extra velden aangemaakt (en ook als het een extra veld is met gerelateerde records (zoals het veld acteur hieronder (met eventueel meer waardes), die het thema niet kent: maak dan een template alleen voor het tonen van die extra velden (met een loop erin mbv each shortcode, zoals hieronder de [each related_ actors].

NB: stel dan in bij autotemplate

NB: Mbv [once]class= kan je trouwens een bijzondere layout meegeven aan het eerste item.

toon inhoud alleen als er inhoud is

Laat de inhoud van een veld alleen zien als er inhoud is:

[code] [if co_author] Co Author: {@co_author}
[/if][/code]
Filter: Deelnemers zien alleen hun zelf geuploade bestanden
Filter: alleen als toestemming is gegeven, is verhaal openbaar
[pods name="kookworkshop" limit="-1" where="openbaar.meta_value = 1" template="Kookworkshop"]

Boolean veld (ja/nee) met de naam Openbaar

Hoe zorg je ervoor dat een auteur alleen zijn eigen werk te zien krijgt?
Lang gezocht, maar hier is het antwoord: https://github.com/pods-framework/pods-code-library/blob/master/example/includes/general/pods_shortcode/examples/current-user-posts-shortcode.php

Een functie:

[code]

/**
* Function for creating a custom shortcode to use to display only posts by current user in a custom post type.
*
* Example shortcode: [pods_by_current_user_cpt name="document" template="Document Template"] *
* Supports all shortcode attributes from standard PODS shortcode:
* http://pods.io/docs/learn/shortcodes/pods/
*
* Original source: https://gist.github.com/tripflex/1b3adfe40e2ad4f41313
*/
add_shortcode( ‘pods_by_current_user_cpt’, ‘pods_by_current_user_cpt’ );
function pods_by_current_user_cpt( $atts, $content = null ) {
$current_user = wp_get_current_user();
$user_id = $current_user-&amp;amp;amp;gt;ID;
$atts[‘where’] = ‘post_author = ‘ . (int) $user_id;
return pods_shortcode( $atts, $content );
}

[/code]

En roep hem aldus aan:  [pods_by_current_user_cpt name=”document” template=”Document Template”]

maak je eigen podsplugins

Download hier de basis en volg de aanwijzingen https://github.com/pods-framework/pods-extend
[pods name=”event” slug=”wordcamp-dallas-2009″ template=”my_event_detail”] // Minimum Attributes Necessary to Show a Column of an item

[pods name=”event” id=”4″ col=”event_description”] // Show a Column of an item (using helpers)
[pods name=”event” id=”4″ col=”event_photos” helper=”photo_gallery”] // List 10 events ordered by ID ascending

[pods name=”event” order=”t.id” limit=”10″ template=”event_list”]

// List 10 events ordered by name ascending then by ID descending
[pods name=”event” order=”t.name ASC,t.id DESC” limit=”10″ template=”event_list”]

// List 10 events ordered by the name of the ‘pickname’ related pod item
[pods name=”event” order=”pickname.name DESC” limit=”10″ template=”event_list”]

// Show detail template for event (using id)
[pods name=”event” id=”2″ template=”event_detail”]

// Show detail template for event (using slug)
[pods name=”event” slug=”my-event-slug” template=”event_detail”]

Presentatie wordcamp (pdf): http://austinwordcamp.org/wp-content/uploads/2010/12/Pleiades_POD_Presentation.pdf 

wiki: find

mooiere invoer in front end formulier met pods add on van gravity forms

NB: let er op dat je bij instellingen van de pod instelt dat de standaardstatus van het formulier wordt ingesteld op publiceren. Standaard instelling is concept.

permalink instellen

datum formaat veranderen
Voeg deze functie toe aan functions.php:

[code] /*datumformaat*/
function my_date($input_date) {
return date("j M Y", strtotime($input_date));
}
[/code]

Roep de functie aan in het template met:
{@post_date, my_date}

excerpt:

[code]function my_excerpt($post_or_id) {
//return zg_trim_excerpt($post_or_id, $excerpt_more = ‘ […]’);
$text = $post_or_id;
$words = 5;
$more = "&amp;amp;hellip;";
return wp_trim_words( $text, $words, $more );
} [/code]

Roep hem aan in het pod template met:{@tekstveldnaam, my_excerpt}

Roep de auteur aan met: door {@author,get_the_author}

volgorde aanpassen