2, 'order' => 'DESC', 'orderby' => 'date', 'ignore_sticky_posts' => true, ); switch ( $array['type'] ) { case 'category': $atts['cat'] = $array['id']; break; case 'tags': $atts['tag_id'] = $array['id']; break; case 'day': $permalink = get_option( 'permalink_structure' ); if ( empty( $permalink ) ) { $query = get_query_var( 'm' ); $array['id'] = substr( $query, 6, 2 ); } $atts['date_query'] = array( array( 'day' => $array['id'], ) ); break; case 'month': $permalink = get_option( 'permalink_structure' ); if ( empty( $permalink ) ) { $query = get_query_var( 'm' ); $month = substr( $query, 4, 2 ); $array['id'] = $month; } $atts['date_query'] = array( array( 'month' => $array['id'], ) ); break; case 'year': $permalink = get_option( 'permalink_structure' ); if ( empty( $permalink ) ) { $query = get_query_var( 'm' ); $array['id'] = substr( $query, 0, 4 ); } $atts['date_query'] = array( array( 'year' => $array['id'], ) ); break; } $posts = new WP_Query( $atts ); wp_reset_postdata(); return $posts; } /** * Proxy function to return posts * * @param $args * * @return WP_Query */ public static function get_posts( $args ) { $atts = array( 'cat' => is_array( $args['cats'] ) ? implode( ',', $args['cats'] ) : '', 'posts_per_page' => $args['limit'], 'order' => $args['order'], 'offset' => $args['offset'], 'orderby' => $args['orderby'] ); $posts = new WP_Query( $atts ); wp_reset_postdata(); return $posts; } /** * Function to return a placeholder if the post has no thumbnail * * @param $id * * @return string */ public static function get_post_image( $id, $size ) { $image = get_template_directory_uri() . '/assets/images/picture_placeholder.jpg'; if ( has_post_thumbnail( $id ) ) { $image = get_the_post_thumbnail_url( $id, $size ); } return $image; } /** * Helper function to echo the post information * * @param $id * * @return string */ public static function get_post_meta( $id ) { $cat = wp_get_post_categories( $id ); $comments = wp_count_comments( $id ); $date = get_the_date( 'F d, Y', $id ); if ( empty( $cat ) ) { $cat[] = 'Uncategorized'; } $html = ''; return $html; } /** * @return array */ public static function check_archive() { $return = array( 'type' => NULL, 'id' => NULL, ); if ( is_category() ) { $return['type'] = 'category'; $category = get_category( get_query_var( 'cat' ) ); $return['id'] = $category->cat_ID; } if ( is_tag() ) { $return['type'] = 'tags'; $tags = get_tags(); $return['id'] = $tags[0]->term_id; } if ( is_day() ) { $return['type'] = 'day'; $day = get_query_var( 'day' ); $return['id'] = $day; } if ( is_month() ) { $return['type'] = 'month'; $month = get_query_var( 'monthnum' ); $return['id'] = $month; } if ( is_year() ) { $return['type'] = 'year'; $year = get_query_var( 'year' ); $return['id'] = $year; } return $return; } /** * @param string $format * * @return bool|mixed */ public static function format_icon( $format = 'standard' ) { if ( $format === 'standard' ) { return false; } $icons = array( 'aside' => 'fa fa-hashtag', 'image' => 'fa fa-picture-o', 'quote' => 'fa fa-quote-left', 'link' => 'fa fa-link', 'gallery' => 'fa fa-th-large', 'video' => 'fa fa-video-camera', 'status' => 'fa fa-heartbeat', 'audio' => 'fa fa-headphones', 'chat' => 'fa fa-comment-o' ); return $icons[ $format ]; } /** * Render the breadcrumbs with help of class-breadcrumbs.php * * @return void */ public static function add_breadcrumbs() { $breadcrumbs = new Newspaper_X_Breadcrumbs(); $breadcrumbs->get_breadcrumbs(); } /** * @param $image_object * * @return array */ public static function get_lazy_image( $image_object ) { $lazy = get_theme_mod( 'newspaper_x_enable_blazy', '' ); $img = $image_object['image']; if ( $lazy ) { $img = apply_filters( 'newspaper_x_widget_image', $image_object ); } $allowed_tags = array( 'img' => array( 'data-srcset' => true, 'data-src' => true, 'srcset' => true, 'sizes' => true, 'src' => true, 'class' => true, 'alt' => true, 'width' => true, 'height' => true ), 'noscript' => array() ); return array( 'image' => $img, 'tags' => $allowed_tags ); } public static function get_first_media( $post_id ) { $post = get_post( $post_id ); $content = do_shortcode( apply_filters( 'the_content', $post->post_content, 1 ) ); $embeds = get_media_embedded_in_content( $content ); $href = ''; $type = ''; $html = ''; if ( empty( $embeds ) ) { return false; } foreach ( $embeds as $embed ) { if ( strpos( $embed, 'youtube' ) ) { preg_match( '/src="([^"]+)"/', $embed, $match ); $href = $match[1]; $type = 'youtube'; } elseif ( strpos( $embed, 'vimeo' ) ) { preg_match( '/src="([^"]+)"/', $embed, $match ); $href = $match[1]; $type = 'vimeo'; } else { $element = new SimpleXMLElement( $embeds[0] ); $href = (string) $element->a->attributes()->href; $type = 'local'; } } if ( ! empty( $href ) ) { switch ( $type ) { case 'local': $html = '
'; $html .= ''; $html .= '
'; break; default: $html = '
'; $html .= '
'; break; } return $html; } return false; } /** * @return bool */ public static function on_iis() { $sSoftware = strtolower( $_SERVER["SERVER_SOFTWARE"] ); if ( strpos( $sSoftware, "microsoft-iis" ) !== false ) { return true; } return false; } /** * Returns true if a blog has more than 1 category. * * @return bool */ public static function categorized_blog() { if ( false === ( $all_the_cool_cats = get_transient( 'newspaper_x_categories' ) ) ) { // Create an array of all the categories that are attached to posts. $all_the_cool_cats = get_categories( array( 'fields' => 'ids', 'hide_empty' => 1, // We only need to know if there is more than one category. 'number' => 2, ) ); // Count the number of categories that are attached to the posts. $all_the_cool_cats = count( $all_the_cool_cats ); set_transient( 'newspaper_x_categories', $all_the_cool_cats ); } if ( $all_the_cool_cats > 1 ) { // This blog has more than 1 category so newspaper_x_categorized_blog should return true. return true; } else { // This blog has only 1 category so newspaper_x_categorized_blog should return false. return false; } } /** * Infinite scroll render for jetpack */ public static function infinite_scroll_render(){ while ( have_posts() ) { the_post(); if ( is_search() ) : get_template_part( 'template-parts/content', 'search' ); else : get_template_part( 'template-parts/content', get_post_format() ); endif; } } /** * @param array $args */ public static function the_posts_navigation( $args = array() ) { echo get_the_posts_navigation( $args ); } /** * @param string $element */ public static function posted_on( $element = 'default' ) { $cat = get_the_category(); $date = get_the_date(); $html = '
'; if ( ! empty( $cat ) ) { $html .= ' ' . esc_html( get_the_category_by_ID( $cat[0]->term_id ) ) . ''; } $html .= '' . esc_html( $date ) . ' '; $html .= '
'; switch ( $element ) { case 'category': echo '' . esc_html( get_the_category_by_ID( $cat[0]->term_id ) ) . ''; break; case 'date': echo '
' . esc_html( $date ) . '
'; break; default: echo $html; break; } } }