PluginProbe
WP Ultimate Post Grid / 2.4.0
WP Ultimate Post Grid v2.4.0
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
← All changes | helpers/grid_cache.php +73 -5 2.12.4.0 View file →
@@ -39,16 +39,21 @@
39 39
40 40 $query = new WP_Query( $args );
41 41 $posts = $query->have_posts() ? $query->posts : array();
42 42
43 + $grid_ids = array();
43 44 foreach ( $posts as $grid_post )
44 45 {
45 46 $grid = new WPUPG_Grid( $grid_post );
46 47
47 48 if( in_array( $post_type, $grid->post_types() ) ) {
48 - $this->generate( $grid->ID() );
49 + $grid_ids[] = $grid->ID();
49 50 }
50 51 }
52 +
53 + if( count( $grid_ids ) > 0 ) {
54 + update_option( 'wpupg_regenerate_grids_check', $grid_ids );
55 + }
51 56 }
52 57
53 58 public function updated_term( $term_id, $taxonomy )
54 59 {
@@ -247,8 +252,41 @@
247 252 $terms_per_post[$post_id][$taxonomy] = $post_taxonomy_term_ids;
248 253 }
249 254 }
250 255
256 + // Show Empty Terms
257 + if( $grid->filter_show_empty() ) {
258 + foreach( $taxonomies as $taxonomy ) {
259 + $terms = get_terms( $taxonomy, array(
260 + 'hide_empty' => false,
261 + ) );
262 +
263 + foreach( $terms as $term ) {
264 + // Check if terms are being limited
265 + if( $grid->filter_limit() ) {
266 + if( $grid->filter_limit_exclude() ) {
267 + if( isset( $limit_terms[$taxonomy] ) && in_array( $term->term_id, $limit_terms[$taxonomy] ) ) continue;
268 + } else {
269 + if( !isset( $limit_terms[$taxonomy] ) || !in_array( $term->term_id, $limit_terms[$taxonomy] ) ) continue;
270 + }
271 + }
272 +
273 + $slug = urldecode( $term->slug );
274 +
275 + if( !isset( $posts_per_term[$taxonomy][$slug] ) ) $posts_per_term[$taxonomy][$slug] = array();
276 +
277 + if( !array_key_exists( $slug, $filter_terms ) ) {
278 + // Filter terms
279 + $filter_terms[$slug] = array(
280 + 'taxonomy' => $taxonomy,
281 + 'name' => $term->name,
282 + 'count' => 0,
283 + );
284 + }
285 + }
286 + }
287 + }
288 +
251 289 $cache['taxonomies'] = $posts_per_term;
252 290 $cache['terms'] = $terms_per_post;
253 291
254 292 // Generate Filter
@@ -253,9 +291,9 @@
253 291
254 292 // Generate Filter
255 293 $filter = '';
256 294
257 - if( count( $filter_terms ) > 0 && $grid->filter_type() == 'isotope' ) {
295 + if( count( $filter_terms ) > 0 && ($grid->filter_type() == 'isotope' ) || $grid->filter_type() == 'text_isotope') {
258 296 $filter_style = $grid->filter_style();
259 297
260 298 // All Button
261 299 if( $filter_style['isotope']['all_button_text'] ) {
@@ -261,10 +299,36 @@
261 299 if( $filter_style['isotope']['all_button_text'] ) {
262 300 $filter .= '<div class="wpupg-filter-item wpupg-filter-isotope-term wpupg-filter-tag- active">' . $filter_style['isotope']['all_button_text'] . '</div>';
263 301 }
264 302
265 - $filter_terms_order = array_keys( $filter_terms );
266 - sort( $filter_terms_order );
303 + $filter_terms_order = array();
304 +
305 + if( $filter_style['isotope']['term_order'] == 'alphabetical_taxonomies' || $filter_style['isotope']['term_order'] == 'reverse_alphabetical_taxonomies' ) {
306 + // Order alphatically per taxonomy
307 + $terms_per_taxonomy = array();
308 +
309 + foreach( $filter_terms as $slug => $term ) {
310 + $taxonomy = $term['taxonomy'];
311 + if( !array_key_exists( $taxonomy, $terms_per_taxonomy ) ) {
312 + $terms_per_taxonomy[$taxonomy] = array();
313 + }
314 + $terms_per_taxonomy[$taxonomy][] = $slug;
315 + }
316 +
317 + foreach( $terms_per_taxonomy as $taxonomy => $terms ) {
318 + sort( $terms );
319 + $filter_terms_order = array_merge( $filter_terms_order, $terms );
320 + }
321 + } else {
322 + // Order alphabetically by default
323 + $filter_terms_order = array_keys( $filter_terms );
324 + sort( $filter_terms_order );
325 + }
326 +
327 + if( $filter_style['isotope']['term_order'] == 'reverse_alphabetical_taxonomies' || $filter_style['isotope']['term_order'] == 'reverse_alphabetical' ) {
328 + $filter_terms_order = array_reverse( $filter_terms_order );
329 + }
330 +
267 331 $filter_terms_order = apply_filters( 'wpupg_grid_cache_filter_isotope_term_order', $filter_terms_order, $grid );
268 332
269 333 foreach( $filter_terms_order as $slug ) {
270 334 $options = isset( $filter_terms[$slug] ) ? $filter_terms[$slug] : false;
@@ -275,10 +339,14 @@
275 339 } else {
276 340 $name = $options['name'];
277 341 }
278 342
279 - $filter .= '<div class="wpupg-filter-item wpupg-filter-isotope-term wpupg-filter-tag-' . $slug . '" data-taxonomy="' . $options['taxonomy'] . '" data-filter="' . $slug . '">' . $name . '</div>';
343 + $filter .= '<div class="wpupg-filter-item wpupg-filter-isotope-term wpupg-filter-isotope-term-' . $options['taxonomy'] . ' wpupg-filter-tag-' . $slug . '" data-taxonomy="' . $options['taxonomy'] . '" data-filter="' . $slug . '">' . $name . '</div>';
280 344 }
345 + }
346 +
347 + if( $grid->filter_type() == 'text_isotope' && WPUltimatePostGrid::is_addon_active('filter-text') ) {
348 + $filter .= WPUltimatePostGrid::addon('filter-text')->get_filter( $grid );
281 349 }
282 350 }
283 351
284 352 // Update Metadata