This repository has been archived by the owner on Jun 1, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtaxonomy-speelset.php
127 lines (98 loc) · 3.29 KB
/
taxonomy-speelset.php
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
/**
* Overzicht voor tips in een speelset.
* De speelset-taxonomie heeft via ACF-velden ook de mogelijkheid om tips automagisch
* bij een speelset te halen.
* Via de keuze 'speelset_selectiemethode' kun je kiezen voor de standaardmanier van een
* taxonomie gebruiken OF je kunt een automatische methode gebruiken.
* Op dit moment (sept 2020) zijn er twee automatische methodes:
* 1) een speelset bestaande uit alle kaarten die een toptip zijn (ACF-veld: 'is_toptip' = 1)
* 2) een speelset bestaande uit de tips uit 1 of meer thema's (bijv. het thema 'inclusie')
*
* @package WordPress
* @subpackage Timber
* @since Timber 0.2
*/
$context = Timber::context();
$i = 0; // Set data for overview
// Set vars
$context['title'] = get_the_archive_title();
// If term archive
if ( isset( $context['archive_term'] ) && ! empty( $context['archive_term']['descr'] ) ) {
$context['descr'] = $context['archive_term']['descr'];
}
$term = get_queried_object();
$the_query = null;
$methode = get_field( 'speelset_selectiemethode', $term );
if ( 'default' !== $methode ) {
// we gaan alleen de query veranderen voor custom queries
$robot_criteria = get_field( 'robot_criteria', $term );
$args = array(
'numberposts' => - 1, // sowieso geen paginering
'post_type' => GC_TIP_CPT, // sowieso alleen tips tonen
);
if ( 'tips_with_star' === $robot_criteria ) {
// 1) een speelset bestaande uit alle kaarten die een toptip zijn (ACF-veld: 'is_toptip' = 1)
$args['meta_key'] = 'is_toptip';
$args['meta_value'] = '1';
} elseif ( 'tips_in_thema' === $robot_criteria ) {
// 2) een speelset bestaande uit de tips uit 1 of meer thema's (bijv. het thema 'inclusie')
$select_tipthema = get_field( 'select_tipthema', $term );
if ( $select_tipthema ):
$getterms = array();
foreach ( $select_tipthema as $term ):
$getterms[] = $term;
endforeach;
$args['tax_query'] = array(
array(
'taxonomy' => GC_TIPTHEMA,
'field' => 'term_id',
'terms' => $getterms,
'operator' => 'IN',
),
);
endif;
} else {
echo 'Onbekend selectiecriterium voor deze speelset: ' . esc_html( $robot_criteria ) . '<br>';
}
if ( $args ) {
$the_query = new WP_Query( $args );
}
if ( $the_query->have_posts() ):
while ( $the_query->have_posts() ) : $the_query->the_post();
$i ++;
$items[ $i ] = prepare_card_content( $post );
endwhile;
endif;
} else {
$poststemp = new Timber\PostQuery();
foreach ( $poststemp as $post ) {
$i ++;
$items[ $i ] = prepare_card_content( $post );
}
}
// Set data for overview
$context['overview'] = [];
$context['overview']['items'] = $items;
$context['overview']['template'] = 'card--tipkaart';
$context['overview']['modifier'] = 'col-4'; // Set 4 column grid for tipgevers. Default is col-3
// Get all data from the term
$archive = get_queried_object();
$taxonomy_name = $archive->taxonomy;
$cat = get_term( $archive->term_id );
// Set title and short description
$context['author']['title'] = $archive->name;
$context['author']['descr'] = ( $cat->description ? $cat->description : '' );
// Set overview
/*
*
echo '<pre>';
var_dump( $context['overview'] );
echo '</pre>';
*/
$templates = array(
'archive-tip-tax.twig',
'archive.twig',
'index.twig',
);
Timber::render( $templates, $context );