PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 1.3.3
Shortcodes and extra features for Phlox theme v1.3.3
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elements / related-posts.php
auxin-elements / includes / elements Last commit date
about-widget.php 9 years ago accordion-api.php 9 years ago accordion.php 9 years ago attachment-url.php 9 years ago audio.php 9 years ago before-after.php 9 years ago button.php 9 years ago code.php 9 years ago contact-box.php 9 years ago contact-form.php 9 years ago divider.php 9 years ago dropcap.php 9 years ago facebook.php 9 years ago flickr.php 9 years ago gallery.php 9 years ago gmap.php 9 years ago highlight.php 9 years ago image.php 9 years ago instagram-feed.php 9 years ago latest-items.php 9 years ago latest-posts-slider.php 9 years ago popular-posts-widget.php 9 years ago quote.php 9 years ago recent-posts-grid-carousel.php 9 years ago recent-posts-land-style.php 9 years ago recent-posts-masonry.php 9 years ago recent-posts-tiles.php 9 years ago recent-posts-timeline.php 9 years ago recent-posts-widget.php 9 years ago recent-posts.php 9 years ago related-posts.php 9 years ago sample-element.php 9 years ago search.php 9 years ago slider.php 9 years ago socials-list.php 9 years ago tabs-api.php 9 years ago tabs.php 9 years ago text.php 9 years ago touch-slider.php 9 years ago video.php 9 years ago
related-posts.php
130 lines
1 <?php
2
3 /**
4 * Related Posts for any post type
5 *
6 * @param array $atts The array containing the parsed values from shortcode, it should be same as defined params above.
7 * @param string $shortcode_content The shorcode content
8 * @return string The output of element markup
9 */
10
11 function auxin_get_the_related_posts( $args = array() ){
12
13 global $post;
14
15 // the recent posts args
16 $defaults = array(
17 'title' => '',
18 'post_type' => $post->post_type,
19 'taxonomy_name' => '', // the taxonomy that we intent to display in post info
20 'taxonomy' => array(),
21 'orderbr' => 'menu_order date',
22 'num' => 3,
23 'desktop_cnum' => 3,
24 'tablet_cnum' => 2,
25 'phone_cnum' => 1,
26
27 'display_title' => true,
28 'show_info' => true,
29 'show_date' => false,
30 'author_or_readmore' => '', // readmore, author, none
31 'display_categories' => true,
32 'max_taxonomy_num' => 3,
33 'wp_query_args' => array(),
34
35 'show_media' => true,
36 'content_layout' => 'entry-boxed', // entry-boxed
37 'show_excerpt' => false,
38 'excerpt_len' => '0',
39 'post_info_position' => 'after-title',
40 'image_aspect_ratio' => 0.75,
41 'preview_mode' => 'grid',
42 'grid_table_hover' => 'bgimage-bgcolor',
43
44 'ignore_media' => false, // whether to ignore media for this
45 'exclude' => '',
46 'include' => '',
47 'order_by' => 'menu_order date',
48 'order' => 'desc',
49 'exclude_without_media' => 0,
50 'exclude_custom_post_formats' => 0,
51 'exclude_quote_link' => 0,
52 'exclude_post_formats_in' => array(), // the list od post formats to exclude
53 'display_like' => true,
54
55 'extra_classes' => '',
56 'extra_column_classes' => '',
57 'custom_el_id' => '',
58 'carousel_space' => '30',
59 'carousel_autoplay' => false,
60 'carousel_autoplay_delay' => '2',
61 'carousel_navigation' => 'peritem',
62 'carousel_navigation_control' => 'bullets',
63 'carousel_loop' => 1,
64
65 'reset_query' => true,
66 'use_wp_query' => false, // true to use the global wp_query, false to use internal custom query
67 'custom_wp_query' => '',
68 'base_class' => 'aux-widget-recent-posts aux-widget-related-posts',
69
70 'text_alignment' => '',
71 'container_start_tag' => '<div class="container aux-fold">',
72 'container_end_tag' => '</div>'
73 );
74
75
76 // update the setting base on preview mode
77 if( ! isset( $args['num'] ) && isset( $args['desktop_cnum'] ) ){
78 $args['num'] = 'carousel' == $args['preview_mode'] ? $args['desktop_cnum'] * 2 : $args['desktop_cnum'];
79 }
80
81 $args = wp_parse_args( $args, $defaults );
82
83 // query the related posts base on taxonimy --------------------------------
84
85 // the taxonomies
86 $taxonomy = $args['taxonomy'];
87
88 // the taxonomy that we intend to display its corresponding terms (required in post-column.php)
89 $taxonomy_name = isset( $taxonomy[0] ) ? $taxonomy[0] : $taxonomy;
90
91 // query the post with the same cat or categories
92 if( $taxonomy ){
93
94 $args['wp_query_args']['tax_query'] = array();
95
96 foreach ( $taxonomy as $tax ) {
97 $tax_terms = get_the_terms( $post->ID, $tax );
98 $tax_slugs = array();
99
100 if( $tax_terms && is_array( $tax_terms ) ) {
101 // loop through current item terms and get all tax slugs
102 foreach ( $tax_terms as $tax_term ) {
103 $tax_slugs[] = $tax_term->slug;
104 }
105 $tax_slugs = array_unique( $tax_slugs );
106
107 if( count( $args['wp_query_args']['tax_query'] ) ){
108 $args['wp_query_args']['tax_query']['relation'] = 'OR';
109 }
110
111 $args['wp_query_args']['tax_query'][] = array(
112 'taxonomy' => $tax,
113 'field' => 'slug',
114 'terms' => $tax_slugs,
115 'operator' => 'IN'
116 );
117 }
118
119 }
120
121 }
122
123 // query the related posts base on taxonimy --------------------------------
124
125 $args = apply_filters( 'auxin_get_the_related_posts_args', $args );
126
127 return $args['container_start_tag'] . auxin_widget_recent_posts_callback( $args ) . $args['container_end_tag'];
128 }
129
130