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/shortcodes/grid_shortcode.php +38 -2 1.62.4.0 View file →
@@ -13,11 +13,11 @@
13 13 {
14 14 $output = '';
15 15
16 16 $slug = strtolower( trim( $options['id'] ) );
17 - unset( $options['id'] );
18 17
19 18 if( $slug ) {
19 + unset( $options['id'] );
20 20 $post = get_page_by_path( $slug, OBJECT, WPUPG_POST_TYPE );
21 21
22 22 if( !is_null( $post ) ) {
23 23 $grid = new WPUPG_Grid( $post );
@@ -24,8 +24,35 @@
24 24
25 25 // Check if we need to filter the grid dynamically
26 26 $dynamic_rules = array();
27 27 if( count( $options ) > 0 && WPUltimatePostGrid::is_premium_active() ) {
28 +
29 + if( isset( $options['post_id'] ) ) {
30 + $post_ids = str_replace( ',', ';', $options['post_id'] );
31 + $post_ids = str_replace( 'current_post', get_the_ID(), $post_ids );
32 +
33 + $dynamic_rules[] = array(
34 + 'post_type' => 'wpupg_general',
35 + 'taxonomy' => 'id',
36 + 'values' => explode( ';', $post_ids ),
37 + 'type' => 'restrict',
38 + );
39 + unset( $options['post_id'] );
40 + }
41 +
42 + if( isset( $options['exclude_post_id'] ) ) {
43 + $post_ids = str_replace( ',', ';', $options['exclude_post_id'] );
44 + $post_ids = str_replace( 'current_post', get_the_ID(), $post_ids );
45 +
46 + $dynamic_rules[] = array(
47 + 'post_type' => 'wpupg_general',
48 + 'taxonomy' => 'id',
49 + 'values' => explode( ';', $post_ids ),
50 + 'type' => 'exclude',
51 + );
52 + unset( $options['exclude_post_id'] );
53 + }
54 +
28 55 foreach( $options as $taxonomy => $terms ) {
29 56 if( taxonomy_exists( $taxonomy ) ) {
30 57 $dynamic_rules[] = array(
31 58 'post_type' => 'wpupg_dynamic',
@@ -44,14 +71,19 @@
44 71 $link_target = $grid->link_target();
45 72 $layout_mode = $grid->layout_mode();
46 73 $centered = $grid->centered() ? 'true' : 'false';
47 74
48 - $posts = '<div id="wpupg-grid-' . esc_attr( $slug ) . '" class="wpupg-grid" data-grid="' . esc_attr( $slug ) . '" data-link-type="' . $link_type . '" data-link-target="' . $link_target . '" data-layout-mode="' . $layout_mode . '" data-centered="' . $centered . '">';
75 + $posts = '<div id="wpupg-grid-' . esc_attr( $slug ) . '" class="wpupg-grid" data-grid="' . esc_attr( $slug ) . '" data-grid-id="' . $grid->ID() . '" data-link-type="' . $link_type . '" data-link-target="' . $link_target . '" data-layout-mode="' . $layout_mode . '" data-centered="' . $centered . '">';
49 76 $posts .= $grid->draw_posts();
50 77 $posts .= '</div>';
51 78
52 79 $output = apply_filters( 'wpupg_posts_shortcode', $posts, $grid );
53 80
81 + // Message when no items match filter
82 + if( $grid->empty_message() ) {
83 + $output .= '<div id="wpupg-grid-' . esc_attr( $slug ) . '-empty" class="wpupg-grid-empty">' . $grid->empty_message() . '</div>';
84 + }
85 +
54 86 $pagination = '';
55 87 if( $grid->pagination_type() == 'pages' ) {
56 88 $pagination_type = $grid->pagination_type();
57 89 $pagination_style = $grid->pagination_style();
@@ -79,8 +111,12 @@
79 111 $pagination .= '</div>';
80 112 }
81 113
82 114 $output .= apply_filters( 'wpupg_pagination_shortcode', $pagination, $grid );
115 +
116 + wp_localize_script( 'wpupg_grid', 'wpupg_grid_' . $grid->ID(), array(
117 + 'posts' => $grid->posts(),
118 + ));
83 119 }
84 120 }
85 121
86 122 return $output;