/** * Render the parent shortcode * @param array $args Shortcode paramters * @param string $content Content between shortcode * @return string HTML output */ function render($args, $content = '') { global $smof_data; $defaults = FusionCore_Plugin::set_shortcode_defaults(array('class' => '', 'id' => '', 'boxed_text' => 'unboxed', 'cat_slug' => '', 'column_spacing' => '12', 'columns' => 3, 'exclude_cats' => '', 'excerpt_length' => '', 'excerpt_words' => '15', 'filters' => 'yes', 'layout' => 'carousel', 'number_posts' => 8, 'picture_size' => 'fixed', 'animation_direction' => 'left', 'animation_speed' => '', 'animation_type' => ''), $args); $defaults['filters'] == 'yes' || $defaults['filters'] == 'true' ? $defaults['filters'] = true : ($defaults['filters'] = false); if ($defaults['column_spacing'] === '0') { $defaults['column_spacing'] = '0.0'; } extract($defaults); self::$args = $defaults; // set the image size for the slideshow $this->set_image_size(); if ($excerpt_length || $excerpt_length === '0') { $excerpt_words = $excerpt_length; } $args = array('post_type' => 'avada_portfolio', 'paged' => 1, 'posts_per_page' => $number_posts, 'has_password' => false); if (self::$args['exclude_cats']) { $cats_to_exclude = explode(',', self::$args['exclude_cats']); } else { $cats_to_exclude = array(); } if (self::$args['cat_slug']) { $cat_slugs = explode(',', self::$args['cat_slug']); } else { $cat_slugs = array(); } if (isset($cats_to_exclude) && $cats_to_exclude) { $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cats_to_exclude, 'operator' => 'NOT IN')); if ($cat_slugs) { $args['tax_query']['relation'] = 'AND'; $args['tax_query'][] = array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs, 'operator' => 'IN'); } } else { if ($cat_slugs) { $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs)); } } wp_reset_query(); $recent_works = new WP_Query($args); $works = ''; while ($recent_works->have_posts()) { $recent_works->the_post(); $rich_snippets = $entry_title = $item_classes = $terms = $image_wrapper = $item_content = $buttons = $url = ''; // set classes, link and target for the image extras content $this->set_image_extras(get_the_ID()); if ($layout == 'carousel') { if (has_post_thumbnail()) { if ($smof_data['image_rollover']) { $image = get_the_post_thumbnail(get_the_ID(), $this->image_size); $image .= $this->get_image_extras(get_the_ID()); } else { $image = sprintf('<a href="%s">%s</a>', get_permalink(get_the_ID()), get_the_post_thumbnail(get_the_ID(), $this->image_size)); } $works .= sprintf('<li>%s<div %s>%s</div></li>', avada_render_rich_snippets_for_pages(), FusionCore_Plugin::attributes('recentworks-shortcode-img-div'), $image); } } else { if (has_post_thumbnail() || get_post_meta(get_the_ID(), 'pyre_video', true)) { $item_classes = 'portfolio-' . $boxed_text . ' '; $item_cats = get_the_terms(get_the_ID(), 'portfolio_category'); if ($item_cats) { foreach ($item_cats as $item_cat) { $item_classes .= $item_cat->slug . ' '; } } if ($column_spacing) { $item_classes .= ' col-spacing'; } $permalink = get_permalink(); if (has_post_thumbnail()) { $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), $this->image_size); $src = $thumbnail[0]; $alt = get_post_meta(get_post_thumbnail_id(get_the_ID()), '_wp_attachment_image_alt', true); if ($smof_data['image_rollover']) { $image = sprintf('<img %s />', FusionCore_Plugin::attributes('recentworks-shortcode-img', array('src' => $src, 'alt' => $alt))); $image .= $this->get_image_extras(get_the_ID()); } else { $image = sprintf('<a href="%s"><img %s /></a>', $permalink, FusionCore_Plugin::attributes('recentworks-shortcode-img', array('src' => $src, 'alt' => $alt))); } $image_wrapper = sprintf('<div %s>%s</div>', FusionCore_Plugin::attributes('recentworks-shortcode-img-div'), $image); } if ($layout == 'grid-with-excerpts') { $rich_snippets = avada_render_rich_snippets_for_pages(false); if (!$smof_data['disable_date_rich_snippet_pages']) { $entry_title = 'entry-title'; } $stripped_content = strip_shortcodes(tf_content($excerpt_words, $smof_data['strip_html_excerpt'])); if ($columns == 1) { if (get_post_meta(get_the_ID(), 'pyre_project_url', true)) { $url = sprintf('<a href="%s" %s>%s</a>', get_post_meta(get_the_ID(), 'pyre_project_url', true), FusionCore_Plugin::attributes('fusion-button medium default'), __('View Project', 'fusion-core')); } $buttons = sprintf('<div %s><a href="%s" %s>%s</a>%s</div>', FusionCore_Plugin::attributes('buttons'), $permalink, FusionCore_Plugin::attributes('fusion-button medium default'), __('Learn More', 'fusion-core'), $url); } $item_content = sprintf('<div %s><h2 class="%s"><a href="%s">%s</a></h2><h4>%s</h4>%s</div>', FusionCore_Plugin::attributes('portfolio-content'), $entry_title, $permalink, get_the_title(), get_the_term_list(get_the_ID(), 'portfolio_category', '', ', ', ''), $stripped_content); } else { $rich_snippets = avada_render_rich_snippets_for_pages(); } $works .= sprintf('<div %s><div class="portfolio-item-wrapper">%s%s%s</div></div>', FusionCore_Plugin::attributes('portfolio-item ' . $item_classes), $rich_snippets, $image_wrapper, $item_content); } } } wp_reset_query(); if ($layout == 'carousel') { $html = sprintf('<div %s><div %s><div %s><ul>%s</ul></div><div %s><span %s></span><span %s></span></div></div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), FusionCore_Plugin::attributes('es-carousel-wrapper fusion-carousel-large'), FusionCore_Plugin::attributes('es-carousel'), $works, FusionCore_Plugin::attributes('es-nav'), FusionCore_Plugin::attributes('es-nav-prev'), FusionCore_Plugin::attributes('es-nav-next')); } else { $portfolio_category = get_terms('portfolio_category'); $filter = ''; $filter_wrapper = ''; $styles = ''; if ($portfolio_category && $filters == true) { $filter = sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('active'), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '*')), __('All', 'fusion-core')); foreach ($portfolio_category as $portfolio_cat) { if (!in_array($portfolio_cat->slug, $cats_to_exclude)) { if (isset(self::$args['cat_slug']) && self::$args['cat_slug']) { $cat_slug = preg_replace('/\\s+/', '', self::$args['cat_slug']); $cat_slug = explode(',', $cat_slug); if (in_array($portfolio_cat->slug, $cat_slug)) { $filter .= sprintf('<li><a %s>%s</a></li>', FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_cat->slug)), $portfolio_cat->name); } } else { $filter .= sprintf('<li><a %s>%s</a></li>', FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_cat->slug)), $portfolio_cat->name); } } } $filter_wrapper = sprintf('<ul %s>%s</ul>', FusionCore_Plugin::attributes('portfolio-tabs'), $filter); } if ($column_spacing) { $styles = sprintf('<style type="text/css">.fusion-recent-works-%s .portfolio-wrapper .col-spacing{padding:%spx;}</style>', $this->recent_works_counter, $column_spacing / 2); } $html = sprintf('<div %s>%s%s<div %s>%s</div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), $filter_wrapper, $styles, FusionCore_Plugin::attributes('recentworks-shortcode-portfolio-wrapper'), $works); } $this->recent_works_counter++; return $html; }
echo ' class="entry-title"'; } ?> ><a href="<?php echo $permalink; ?> "><?php the_title(); ?> </a></h2> <h4><?php echo get_the_term_list($post->ID, 'portfolio_category', '', ', ', ''); ?> </h4> <?php echo avada_render_rich_snippets_for_pages(false); ?> <?php if ($smof_data['portfolio_text_layout']) { ?> <div class="content-sep"></div> <?php } ?> <div class="post-content"> <?php if (get_post_meta($current_page_id, 'pyre_portfolio_excerpt', true)) { $excerpt_length = get_post_meta($current_page_id, 'pyre_portfolio_excerpt', true); } else { $excerpt_length = $smof_data['excerpt_length_portfolio']; }
/** * Render the parent shortcode * @param array $args Shortcode paramters * @param string $content Content between shortcode * @return string HTML output */ function render($args, $content = '') { global $smof_data; $defaults = FusionCore_Plugin::set_shortcode_defaults(array('class' => '', 'id' => '', 'autoplay' => 'no', 'boxed_text' => 'unboxed', 'cat_slug' => '', 'carousel_layout' => 'title_on_rollover', 'column_spacing' => '12', 'columns' => 3, 'exclude_cats' => '', 'excerpt_length' => '15', 'excerpt_words' => '', 'filters' => 'yes', 'layout' => 'carousel', 'mouse_scroll' => 'no', 'number_posts' => 8, 'offset' => '', 'picture_size' => 'fixed', 'scroll_items' => '', 'show_nav' => 'yes', 'strip_html' => 'yes', 'animation_direction' => 'left', 'animation_speed' => '', 'animation_type' => ''), $args); if ($defaults['column_spacing'] === '0') { $defaults['column_spacing'] = '0.0'; } if ($defaults['strip_html'] == 'yes') { $defaults['strip_html'] = TRUE; } extract($defaults); self::$args = $defaults; // Set the image size for the slideshow $this->set_image_size(); // As $excerpt_words is deprecated, only use it when explicity set if ($excerpt_words || $excerpt_words === '0') { $excerpt_length = $excerpt_words; } // Transform $cat_slugs to array if (self::$args['cat_slug']) { $cat_slugs = preg_replace('/\\s+/', '', self::$args['cat_slug']); $cat_slugs = explode(',', self::$args['cat_slug']); } else { $cat_slugs = array(); } // Transform $cats_to_exclude to array if (self::$args['exclude_cats']) { $cats_to_exclude = preg_replace('/\\s+/', '', self::$args['cat_slug']); $cats_to_exclude = explode(',', self::$args['exclude_cats']); } else { $cats_to_exclude = array(); } // Initialize the query array $args = array('post_type' => 'avada_portfolio', 'paged' => 1, 'posts_per_page' => $number_posts, 'has_password' => false); if ($defaults['offset']) { $args['offset'] = $offset; } // Check if the are categories that should be excluded if (!empty($cats_to_exclude)) { // Exclude the correct cats from tax_query $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cats_to_exclude, 'operator' => 'NOT IN')); // Include the correct cats in tax_query if (!empty($cat_slugs)) { $args['tax_query']['relation'] = 'AND'; $args['tax_query'][] = array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs, 'operator' => 'IN'); } } else { // Include the cats from $cat_slugs in tax_query if (!empty($cat_slugs)) { $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs)); } } // If placeholder images are disabled, add the _thumbnail_id meta key to the query to only retrieve posts with featured images if (!$smof_data['featured_image_placeholder']) { $args['meta_key'] = '_thumbnail_id'; } wp_reset_query(); $recent_works = new WP_Query($args); $portfolio_posts = ''; // Loop through returned posts // Setup the inner HTML for each elements while ($recent_works->have_posts()) { $recent_works->the_post(); // Reset vars $rich_snippets = $post_classes = $title_terms = $image = $post_title = $post_terms = $separator = $post_content = $buttons = $view_project_button = ''; // For carousels we only need the image and a li wrapper if ($layout == 'carousel') { // Title on rollover layout if ($carousel_layout == 'title_on_rollover') { $show_title = 'default'; // Title below image layout } else { $show_title = 'disable'; // Get the post title $title_terms .= sprintf('<h4 %s><a href="%s" target="%s">%s</a></h4>', FusionCore_Plugin::attributes('fusion-carousel-title'), get_permalink(get_the_ID()), '_self', get_the_title()); // Get the terms $title_terms .= get_the_term_list(get_the_ID(), 'portfolio_category', '<div class="fusion-carousel-meta">', ', ', '</div>'); } // Render the video set in page options if no featured image is present if (!has_post_thumbnail() && fusion_get_page_option('video', get_the_ID())) { $video_max_width = '540px'; $image = sprintf('<div class="fusion-image-wrapper fusion-video" style="max-width:%s;">%s</div>', $video_max_width, fusion_get_page_option('video', get_the_ID())); } else { // Get the post image $image = avada_render_first_featured_image_markup(get_the_ID(), $this->image_size, get_permalink(get_the_ID()), TRUE, FALSE, FALSE, 'disable', $show_title, '', $this->recent_works_counter); } $portfolio_posts .= sprintf('<li %s><div %s>%s%s%s</div></li>', FusionCore_Plugin::attributes('fusion-carousel-item'), FusionCore_Plugin::attributes('fusion-carousel-item-wrapper'), avada_render_rich_snippets_for_pages(), $image, $title_terms); } else { // Get the post permalink $permalink = get_permalink(); // Include the post categories as css classes for later useage with filters $post_categories = get_the_terms(get_the_ID(), 'portfolio_category'); if ($post_categories) { foreach ($post_categories as $post_category) { $post_classes .= urldecode($post_category->slug) . ' '; } } // Add the col-spacing class if needed if ($column_spacing) { $post_classes .= 'fusion-col-spacing'; } // Render the video set in page options if no featured image is present if (!has_post_thumbnail() && fusion_get_page_option('video', get_the_ID())) { $video_max_width = '540px'; $image = sprintf('<div class="fusion-image-wrapper fusion-video" style="max-width:%s;">%s</div>', $video_max_width, fusion_get_page_option('video', get_the_ID())); } else { // Get the post image $image = avada_render_first_featured_image_markup(get_the_ID(), $this->image_size, get_permalink(get_the_ID()), TRUE, FALSE, FALSE, 'disable', 'default', '', $this->recent_works_counter); } // Additional content for grid-with-excerpts layout if ($layout == 'grid-with-excerpts') { // Get the rich snippets, if enabled $rich_snippets = avada_render_rich_snippets_for_pages(false); // Get the post title $post_title = avada_render_post_title(get_the_ID()); // Get the post terms $post_terms = sprintf('<h4>%s</h4>', get_the_term_list(get_the_ID(), 'portfolio_category', '', ', ', '')); // Get the post content ob_start(); /** * fusion_recent_works_shortcode_content hook * * @hooked content - 10 (outputs the post content) */ do_action('fusion_recent_works_shortcode_content'); $stripped_content = ob_get_clean(); // For boxed layouts add a content separator if there is a post content if ($boxed_text == 'boxed' && $stripped_content) { $separator = '<div class="fusion-content-sep"></div>'; } // On one column layouts render the "Learn More" and "View Project" buttons if ($columns == '1') { $classes = sprintf('fusion-button fusion-button-small fusion-button-default fusion-button-%s fusion-button-%s', strtolower($smof_data['button_shape']), strtolower($smof_data['button_type'])); // Add the "Learn More" button $learn_more_button = sprintf('<a href="%s" %s>%s</a>', $permalink, FusionCore_Plugin::attributes($classes), __('Learn More', 'fusion-core')); // If there is a project url, add the "View Project" button $view_project_button = ''; if (fusion_get_page_option('project_url', get_the_ID())) { $view_project_button = sprintf('<a href="%s" %s>%s</a>', fusion_get_page_option('project_url', get_the_ID()), FusionCore_Plugin::attributes($classes), __('View Project', 'fusion-core')); } // Wrap buttons $buttons = sprintf('<div %s>%s%s</div>', FusionCore_Plugin::attributes('fusion-portfolio-buttons'), $learn_more_button, $view_project_button); } // Put it all together $post_content = sprintf('<div %s>%s%s%s<div %s>%s%s</div></div>', FusionCore_Plugin::attributes('fusion-portfolio-content'), $post_title, $post_terms, $separator, FusionCore_Plugin::attributes('fusion-post-content'), $stripped_content, $buttons); } else { // Get the rich snippets for grid layout without excerpts $rich_snippets = avada_render_rich_snippets_for_pages(); } $portfolio_posts .= sprintf('<div %s><div %s>%s%s%s</div></div>', FusionCore_Plugin::attributes('fusion-portfolio-post ' . $post_classes), FusionCore_Plugin::attributes('fusion-portfolio-content-wrapper'), $rich_snippets, $image, $post_content); } } // end while wp_reset_query(); // Wrap all the portfolio posts with the appropriate HTML markup // Carousel layout if ($layout == 'carousel') { $main_carousel = sprintf('<ul %s>%s</ul>', FusionCore_Plugin::attributes('fusion-carousel-holder'), $portfolio_posts); // Check if navigation should be shown $navigation = ''; if ($show_nav == 'yes') { $navigation = sprintf('<div %s><span %s></span><span %s></span></div>', FusionCore_Plugin::attributes('fusion-carousel-nav'), FusionCore_Plugin::attributes('fusion-nav-prev'), FusionCore_Plugin::attributes('fusion-nav-next')); } $html = sprintf('<div %s><div %s><div %s>%s%s</div></div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), FusionCore_Plugin::attributes('recentworks-shortcode-carousel'), FusionCore_Plugin::attributes('fusion-carousel-positioner'), $main_carousel, $navigation); // Grid layouts } else { // Reset vars $filter_wrapper = $filter = $styles = ''; // Setup the filters, if enabled $portfolio_categories = get_terms('portfolio_category'); // Check if filters should be displayed if ($portfolio_categories && $filters != 'no') { // Check if the "All" filter should be displayed if ($filters != 'yes-without-all') { $filter = sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('fusion-filter fusion-filter-all fusion-active'), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '*')), __('All', 'fusion-core')); $first_filter = FALSE; } else { $first_filter = TRUE; } // Loop through categories foreach ($portfolio_categories as $portfolio_category) { // Only display filters of non excluded categories if (!in_array($portfolio_category->slug, $cats_to_exclude)) { // Check if categories have been chosen if (!empty(self::$args['cat_slug'])) { // Only display filters for explicitly included categories if (in_array($portfolio_category->slug, $cat_slugs)) { // Set the first category filter to active, if the all filter isn't shown $active_class = ''; if ($first_filter) { $active_class = ' fusion-active'; $first_filter = FALSE; } $filter .= sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('fusion-filter fusion-hidden' . $active_class), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_category->slug)), $portfolio_category->name); } // Display all categories } else { // Set the first category filter to active, if the all filter isn't shown $active_class = ''; if ($first_filter) { $active_class = ' fusion-active'; $first_filter = FALSE; } $filter .= sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('fusion-filter fusion-hidden' . $active_class), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_category->slug)), $portfolio_category->name); } } } // end foreach // Wrap filters $filter_wrapper = sprintf('<ul %s>%s</ul>', FusionCore_Plugin::attributes('fusion-filters'), $filter); } // For column spacing set needed css if ($column_spacing) { $styles = sprintf('<style type="text/css">.fusion-recent-works-%s .fusion-portfolio-wrapper .fusion-col-spacing{padding:%spx;}</style>', $this->recent_works_counter, $column_spacing / 2); } // Put it all together $html = sprintf('<div %s>%s%s<div %s>%s</div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), $filter_wrapper, $styles, FusionCore_Plugin::attributes('recentworks-shortcode-portfolio-wrapper'), $portfolio_posts); } $this->recent_works_counter++; return $html; }
/** * Render the full meta data for blog archive and single layouts * @param string $layout The blog layout (either single, standard, alternate or grid_timeline) * * @return string HTML markup to display the date and post format box **/ function avada_render_post_metadata($layout, $settings = array()) { $html = $author = $date = $metadata = ''; if (!$settings) { $settings['post_meta'] = Avada()->settings->get('post_meta'); $settings['post_meta_author'] = Avada()->settings->get('post_meta_author'); $settings['post_meta_date'] = Avada()->settings->get('post_meta_date'); $settings['post_meta_cats'] = Avada()->settings->get('post_meta_cats'); $settings['post_meta_tags'] = Avada()->settings->get('post_meta_tags'); $settings['post_meta_comments'] = Avada()->settings->get('post_meta_comments'); } // Check if meta data is enabled if ($settings['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', TRUE) != 'no' || !$settings['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', TRUE) == 'yes') { // For alternate, grid and timeline layouts return empty single-line-meta if all meta data for that position is disabled if (($layout == 'alternate' || $layout == 'grid_timeline') && $settings['post_meta_author'] && $settings['post_meta_date'] && $settings['post_meta_cats'] && $settings['post_meta_tags'] && $settings['post_meta_comments']) { return $html; } // Render author meta data if (!$settings['post_meta_author']) { ob_start(); the_author_posts_link(); $author_post_link = ob_get_clean(); // Check if rich snippets are enabled if (Avada()->settings->get('disable_date_rich_snippet_pages')) { $metadata .= sprintf('%s <span>%s</span><span class="fusion-inline-sep">|</span>', __('By', 'Avada'), $author_post_link); } else { $metadata .= sprintf('%s <span class="vcard"><span class="fn">%s</span></span><span class="fusion-inline-sep">|</span>', __('By', 'Avada'), $author_post_link); } // If author meta data won't be visible, render just the invisible author rich snippet } else { $author .= avada_render_rich_snippets_for_pages(FALSE, TRUE, FALSE); } // Render the updated meta data or at least the rich snippet if enabled if (!$settings['post_meta_date']) { $metadata .= avada_render_rich_snippets_for_pages(FALSE, FALSE, TRUE); $metadata .= sprintf('<span>%s</span><span class="fusion-inline-sep">|</span>', get_the_time(Avada()->settings->get('date_format'))); } else { $date .= avada_render_rich_snippets_for_pages(FALSE, FALSE, TRUE); } // Render rest of meta data if ($layout != 'grid_timeline') { // Render categories if (!$settings['post_meta_cats']) { ob_start(); the_category(', '); $categories = ob_get_clean(); if ($categories) { if (!$settings['post_meta_tags']) { $metadata .= __('Categories:', 'Avada') . ' '; } $metadata .= sprintf('%s<span class="fusion-inline-sep">|</span>', $categories); } } // Render tags if (!$settings['post_meta_tags']) { ob_start(); the_tags(''); $tags = ob_get_clean(); if ($tags) { $metadata .= sprintf('<span class="meta-tags">%s %s</span><span class="fusion-inline-sep">|</span>', __('Tags:', 'Avada'), $tags); } } // Render comments if (!$settings['post_meta_comments']) { ob_start(); comments_popup_link(__('0 Comments', 'Avada'), __('1 Comment', 'Avada'), '% ' . __('Comments', 'Avada')); $comments = ob_get_clean(); $metadata .= sprintf('<span class="fusion-comments">%s</span>', $comments); } } // Render the HTML wrappers for the different layouts if ($metadata) { $metadata = $author . $date . $metadata; if ($layout == 'single') { $html .= sprintf('<div class="fusion-meta-info"><div class="fusion-meta-info-wrapper">%s</div></div>', $metadata); } elseif ($layout == 'alternate' || $layout == 'grid_timeline') { $html .= sprintf('<p class="fusion-single-line-meta">%s</p>', $metadata); } else { $html .= sprintf('<div class="fusion-alignleft">%s</div>', $metadata); } } else { $html .= $author . $date; } // Render author and updated rich snippets for grid and timeline layouts } else { if (!Avada()->settings->get('disable_date_rich_snippet_pages')) { $html .= avada_render_rich_snippets_for_pages(FALSE); } } return $html; }
/** * Render the parent shortcode * @param array $args Shortcode paramters * @param string $content Content between shortcode * @return string HTML output */ function render($args, $content = '') { global $smof_data; $defaults = FusionCore_Plugin::set_shortcode_defaults(array('class' => '', 'id' => '', 'cat_id' => '', 'cat_slug' => '', 'columns' => 3, 'excerpt' => 'no', 'exclude_cats' => '', 'excerpt_length' => '', 'excerpt_words' => '15', 'layout' => 'default', 'meta' => 'yes', 'number_posts' => 4, 'offset' => '', 'strip_html' => 'yes', 'title' => 'yes', 'thumbnail' => 'yes', 'animation_direction' => 'left', 'animation_speed' => '', 'animation_type' => ''), $args); if ($defaults['columns'] > 6) { $defaults['columns'] = 6; } $defaults['strip_html'] == 'yes' || $defaults['strip_html'] == 'true' ? $defaults['strip_html'] = true : ($defaults['strip_html'] = false); if ($defaults['number_posts']) { $defaults['posts_per_page'] = $defaults['number_posts']; } if ($defaults['excerpt_length'] || $defaults['excerpt_length'] === '0') { $defaults['excerpt_words'] = $defaults['excerpt_length']; } //check for cats to exclude; needs to be checked via exclude_cats param and '-' prefixed cats on cats param //exclution via exclude_cats param $cats_to_exclude = explode(',', $defaults['exclude_cats']); if ($cats_to_exclude) { foreach ($cats_to_exclude as $cat_to_exclude) { $idObj = get_category_by_slug($cat_to_exclude); if ($idObj) { $cats_id_to_exclude[] = $idObj->term_id; } } if (isset($cats_id_to_exclude) && $cats_id_to_exclude) { $defaults['category__not_in'] = $cats_id_to_exclude; } } //setting up cats to be used and exclution using '-' prefix on cats param; transform slugs to ids $cat_ids = ''; $categories = explode(',', $defaults['cat_slug']); if (isset($categories) && $categories) { foreach ($categories as $category) { if ($category) { $cat_obj = get_category_by_slug($category); if (isset($cat_obj->term_id)) { if (strpos($category, '-') === 0) { $cat_ids .= '-' . $cat_obj->cat_ID . ','; } else { $cat_ids .= $cat_obj->cat_ID . ','; } } } } } $defaults['cat'] = substr($cat_ids, 0, -1); $defaults['cat'] .= $defaults['cat_id']; $items = ''; $args = array('posts_per_page' => $defaults['number_posts'], 'ignore_sticky_posts' => 1); if ($defaults['offset']) { $args['offset'] = $defaults['offset']; } if ($defaults['cat']) { $args['cat'] = $defaults['cat']; } if (isset($defaults['category__not_in']) && is_array($defaults['category__not_in'])) { $args['category__not_in'] = $defaults['category__not_in']; } extract($defaults); self::$args = $defaults; $recent_posts = new WP_Query($args); $count = 1; while ($recent_posts->have_posts()) { $recent_posts->the_post(); $attachment = $date_box = $slideshow = $slides = $content = ''; if ($layout == 'date-on-side') { switch (get_post_format()) { case 'gallery': $format_class = 'images'; break; case 'link': $format_class = 'link'; break; case 'image': $format_class = 'image'; break; case 'quote': $format_class = 'quotes-left'; break; case 'video': $format_class = 'film'; break; case 'audio': $format_class = 'headphones'; break; case 'chat': $format_class = 'bubbles'; break; default: $format_class = 'pen'; break; } $date_box = sprintf('<div %s><div %s><span %s>%s</span><span %s>%s</span></div><div %s><i %s></i></div></div>', FusionCore_Plugin::attributes('fusion-date-and-formats'), FusionCore_Plugin::attributes('fusion-date-box updated'), FusionCore_Plugin::attributes('fusion-date'), get_the_time($smof_data['alternate_date_format_day']), FusionCore_Plugin::attributes('fusion-month-year'), get_the_time($smof_data['alternate_date_format_month_year']), FusionCore_Plugin::attributes('fusion-format-box'), FusionCore_Plugin::attributes('fusion-icon-' . $format_class)); } if ($thumbnail == 'yes' && $layout != 'date-on-side' && !post_password_required(get_the_ID())) { if ($layout == 'default') { $image_size = 'recent-posts'; } elseif ($layout == 'thumbnails-on-side') { $image_size = 'portfolio-five'; } if (has_post_thumbnail() || get_post_meta(get_the_ID(), 'pyre_video', true)) { if (get_post_meta(get_the_ID(), 'pyre_video', true)) { $slides .= sprintf('<li><div %s>%s</div></li>', FusionCore_Plugin::attributes('full-video'), get_post_meta(get_the_ID(), 'pyre_video', true)); } if (has_post_thumbnail()) { $attachment_image = wp_get_attachment_image_src(get_post_thumbnail_id(), $image_size); $full_image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full'); $attachment_data = wp_get_attachment_metadata(get_post_thumbnail_id()); $attachment = get_post(get_post_thumbnail_id()); $slides .= sprintf('<li><a href="%s"><img %s/></a></li>', get_permalink(get_the_ID()), FusionCore_Plugin::attributes('recentposts-shortcode-img', array('src' => $attachment_image[0], 'alt' => $attachment->post_title))); } $i = 2; while ($i <= $smof_data['posts_slideshow_number']) { $attachment_new_id = kd_mfi_get_featured_image_id('featured-image-' . $i, 'post'); if ($attachment_new_id) { $attachment_image = wp_get_attachment_image_src($attachment_new_id, $image_size); $full_image = wp_get_attachment_image_src($attachment_new_id, 'full'); $attachment_data = wp_get_attachment_metadata($attachment_new_id); $slides .= sprintf('<li><a href="%s"><img %s/></a></li>', get_permalink(get_the_ID()), FusionCore_Plugin::attributes('recentposts-shortcode-img', array('src' => $attachment_image[0], 'alt' => ''))); } $i++; } $slideshow = sprintf('<div %s><ul %s>%s</ul></div>', FusionCore_Plugin::attributes('recentposts-shortcode-slideshow'), FusionCore_Plugin::attributes('slides'), $slides); } } if ($title == 'yes') { $content .= avada_render_rich_snippets_for_pages(false); $entry_title = ''; if (!$smof_data['disable_date_rich_snippet_pages']) { $entry_title = 'entry-title'; } $content .= sprintf('<h4 class="%s"><a href="%s">%s</a></h4>', $entry_title, get_permalink(get_the_ID()), get_the_title()); } else { $content .= avada_render_rich_snippets_for_pages(); } if ($meta == 'yes') { $comments = $comments_link = ''; ob_start(); comments_popup_link(__('0 Comments', 'fusion-core'), __('1 Comment', 'fusion-core'), '% ' . __('Comments', 'fusion-core')); $comments_link = ob_get_contents(); ob_get_clean(); $comments = sprintf('<span %s>|</span><span>%s</span>', FusionCore_Plugin::attributes('meta-separator'), $comments_link); $content .= sprintf('<p %s><span><span %s>%s</span></span>%s</p>', FusionCore_Plugin::attributes('meta'), FusionCore_Plugin::attributes('date'), get_the_time($smof_data['date_format'], get_the_ID()), $comments); } if ($excerpt == 'yes') { $content .= fusion_get_post_content('', 'yes', $excerpt_words, $strip_html); } if ($count == self::$args['columns']) { $count = 0; $items .= sprintf('<div %s>%s%s<div %s>%s</div></div><div class="fusion-clearfix"></div>', FusionCore_Plugin::attributes('recentposts-shortcode-column'), $date_box, $slideshow, FusionCore_Plugin::attributes('recent-posts-content'), $content); } else { $items .= sprintf('<div %s>%s%s<div %s>%s</div></div>', FusionCore_Plugin::attributes('recentposts-shortcode-column'), $date_box, $slideshow, FusionCore_Plugin::attributes('recent-posts-content'), $content); } $count++; } $html = sprintf('<div %s><section %s>%s</section></div>', FusionCore_Plugin::attributes('recentposts-shortcode'), FusionCore_Plugin::attributes('recentposts-shortcode-section'), $items); wp_reset_query(); return $html; }
/** * Render the full meta data for blog archive and single layouts * @param string $layout The blog layout (either single, standard, alternate or grid_timeline) * * @return string HTML markup to display the date and post format box **/ function avada_render_post_metadata($layout, $settings = array()) { $html = $author = $date = $metadata = ''; $settings = is_array($settings) ? $settings : array(); $default_settings = array('post_meta' => Avada()->settings->get('post_meta'), 'post_meta_author' => Avada()->settings->get('post_meta_author'), 'post_meta_date' => Avada()->settings->get('post_meta_date'), 'post_meta_cats' => Avada()->settings->get('post_meta_cats'), 'post_meta_tags' => Avada()->settings->get('post_meta_tags'), 'post_meta_comments' => Avada()->settings->get('post_meta_comments')); $settings = wp_parse_args($settings, $default_settings); // Check if meta data is enabled if ($settings['post_meta'] && 'no' != get_post_meta(get_queried_object_id(), 'pyre_post_meta', true) || !$settings['post_meta'] && 'yes' == get_post_meta(get_queried_object_id(), 'pyre_post_meta', true)) { // For alternate, grid and timeline layouts return empty single-line-meta if all meta data for that position is disabled if (in_array($layout, array('alternate', 'grid_timeline')) && !$settings['post_meta_author'] && !$settings['post_meta_date'] && !$settings['post_meta_cats'] && !$settings['post_meta_tags'] && !$settings['post_meta_comments']) { return ''; } // Render author meta data if ($settings['post_meta_author']) { ob_start(); the_author_posts_link(); $author_post_link = ob_get_clean(); // Check if rich snippets are enabled if (!Avada()->settings->get('disable_date_rich_snippet_pages')) { $metadata .= sprintf(esc_html__('By %s', 'Avada'), '<span>' . $author_post_link . '</span>'); } else { $metadata .= sprintf(esc_html__('By %s', 'Avada'), '<span class="vcard"><span class="fn">' . $author_post_link . '</span></span>'); } $metadata .= '<span class="fusion-inline-sep">|</span>'; // If author meta data won't be visible, render just the invisible author rich snippet } else { $author .= avada_render_rich_snippets_for_pages(false, true, false); } // Render the updated meta data or at least the rich snippet if enabled if ($settings['post_meta_date']) { $metadata .= avada_render_rich_snippets_for_pages(false, false, true); $metadata .= '<span>' . get_the_time(Avada()->settings->get('date_format')) . '</span><span class="fusion-inline-sep">|</span>'; } else { $date .= avada_render_rich_snippets_for_pages(false, false, true); } // Render rest of meta data // Render categories if ($settings['post_meta_cats']) { ob_start(); the_category(', '); $categories = ob_get_clean(); if ($categories) { $metadata .= $settings['post_meta_tags'] ? sprintf(esc_html__('Categories: %s', 'Avada'), $categories) : $categories; $metadata .= '<span class="fusion-inline-sep">|</span>'; } } // Render tags if ($settings['post_meta_tags']) { ob_start(); the_tags(''); $tags = ob_get_clean(); if ($tags) { $metadata .= '<span class="meta-tags">' . sprintf(esc_html__('Tags: %s', 'Avada'), $tags) . '</span><span class="fusion-inline-sep">|</span>'; } } // Render comments if ($settings['post_meta_comments'] && $layout != 'grid_timeline') { ob_start(); comments_popup_link(esc_html__('0 Comments', 'Avada'), esc_html__('1 Comment', 'Avada'), esc_html__('% Comments', 'Avada')); $comments = ob_get_clean(); $metadata .= '<span class="fusion-comments">' . $comments . '</span>'; } // Render the HTML wrappers for the different layouts if ($metadata) { $metadata = $author . $date . $metadata; if ('single' == $layout) { $html .= '<div class="fusion-meta-info"><div class="fusion-meta-info-wrapper">' . $metadata . '</div></div>'; } elseif (in_array($layout, array('alternate', 'grid_timeline'))) { $html .= '<p class="fusion-single-line-meta">' . $metadata . '</p>'; } else { $html .= '<div class="fusion-alignleft">' . $metadata . '</div>'; } } else { $html .= $author . $date; } // Render author and updated rich snippets for grid and timeline layouts } else { if (Avada()->settings->get('disable_date_rich_snippet_pages')) { $html .= avada_render_rich_snippets_for_pages(false); } } return $html; }
function avada_render_post_metadata($layout) { global $smof_data; $html = $metadata = ''; if ($smof_data['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', true) != 'no' || !$smof_data['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', true) == 'yes') { if (($layout == 'alternate' || $layout == 'grid_timeline') && $smof_data['post_meta_author'] && $smof_data['post_meta_date'] && $smof_data['post_meta_cats'] && $smof_data['post_meta_tags'] && $smof_data['post_meta_comments']) { return $html; } if (!$smof_data['post_meta_author']) { ob_start(); the_author_posts_link(); $author_post_link = ob_get_clean(); if ($smof_data['disable_date_rich_snippet_pages']) { $metadata .= sprintf('%s <span>%s</span><span class="sep">|</span>', __('By', 'Avada'), $author_post_link); } else { $metadata .= sprintf('%s <span class="vcard"><span class="fn">%s</span></span><span class="sep">|</span>', __('By', 'Avada'), $author_post_link); } } else { $metadata .= avada_render_rich_snippets_for_pages(false, true, false); } if (!$smof_data['post_meta_date']) { $metadata .= avada_render_rich_snippets_for_pages(false, false, true); $metadata .= sprintf('<span>%s</span><span class="sep">|</span>', get_the_time($smof_data['date_format'])); } else { $metadata .= avada_render_rich_snippets_for_pages(false, false, true); } if ($layout != 'grid_timeline') { if (!$smof_data['post_meta_cats']) { ob_start(); the_category(', '); $categories = ob_get_clean(); if ($categories) { if (!$smof_data['post_meta_tags']) { $metadata .= __('Categories:', 'Avada') . ' '; } $metadata .= sprintf('%s<span class="sep">|</span>', $categories); } } if (!$smof_data['post_meta_tags']) { ob_start(); the_tags(''); $tags = ob_get_clean(); if ($tags) { $metadata .= sprintf('<span class="meta-tags">%s %s</span><span class="sep">|</span>', __('Tags:', 'Avada'), $tags); } } if (!$smof_data['post_meta_comments']) { ob_start(); comments_popup_link(__('0 Comments', 'Avada'), __('1 Comment', 'Avada'), '% ' . __('Comments', 'Avada')); $comments = ob_get_clean(); $metadata .= sprintf('<span class="comments">%s</span>', $comments); } } if ($layout == 'single') { $html .= sprintf('<div class="meta-info"><div class="meta-info-wrapper">%s</div></div>', $metadata); } elseif ($layout == 'alternate' || $layout == 'grid_timeline') { $html .= sprintf('<p class="single-line-meta">%s</p>', $metadata); } else { $html .= sprintf('<div class="alignleft">%s</div>', $metadata); } } else { if (!$smof_data['disable_date_rich_snippet_pages']) { $html .= avada_render_rich_snippets_for_pages(false); } } return $html; }