function et_pb_fullwidth_portfolio($atts) { extract(shortcode_atts(array('title' => '', 'module_id' => '', 'module_class' => '', 'fullwidth' => 'on', 'include_categories' => '', 'posts_number' => '', 'show_title' => 'on', 'show_date' => 'on', 'background_layout' => 'light', 'auto' => 'off', 'auto_speed' => 7000), $atts)); $args = array(); if (is_numeric($posts_number) && $posts_number > 0) { $args['posts_per_page'] = $posts_number; } else { $args['nopaging'] = true; } if ('' !== $include_categories) { $args['tax_query'] = array(array('taxonomy' => 'project_category', 'field' => 'id', 'terms' => explode(',', $include_categories), 'operator' => 'IN')); } $projects = et_divi_get_projects($args); ob_start(); if ($projects->post_count > 0) { while ($projects->have_posts()) { $projects->the_post(); ?> <div id="post-<?php the_ID(); ?> " <?php post_class('et_pb_portfolio_item '); ?> > <?php $thumb = ''; $width = 320; $width = (int) apply_filters('et_pb_portfolio_image_width', $width); $height = 241; $height = (int) apply_filters('et_pb_portfolio_image_height', $height); list($thumb_src, $thumb_width, $thumb_height) = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), array($width, $height)); $orientation = $thumb_height > $thumb_width ? 'portrait' : 'landscape'; if ('' !== $thumb_src) { ?> <div class="et_pb_portfolio_image <?php esc_attr_e($orientation); ?> "> <a href="<?php the_permalink(); ?> "> <img src="<?php esc_attr_e($thumb_src); ?> " alt="<?php esc_attr_e(get_the_title()); ?> "/> <div class="meta"> <span class="et_overlay"></span> <?php if ('on' === $show_title) { ?> <h3><?php the_title(); ?> </h3> <?php } ?> <?php if ('on' === $show_date) { ?> <p class="post-meta"><?php echo get_the_date(); ?> </p> <?php } ?> </div> </a> </div> <?php } ?> </div> <?php } } wp_reset_postdata(); $posts = ob_get_clean(); $class = " et_pb_bg_layout_{$background_layout}"; $output = sprintf('<div%4$s class="et_pb_fullwidth_portfolio %1$s%3$s%5$s" data-auto-rotate="%6$s" data-auto-rotate-speed="%7$s"> %8$s <div class="et_pb_portfolio_items clearfix" data-columns=""> %2$s </div><!-- .et_pb_portfolio_items --> </div> <!-- .et_pb_fullwidth_portfolio -->', 'on' === $fullwidth ? 'et_pb_fullwidth_portfolio_carousel' : 'et_pb_fullwidth_portfolio_grid clearfix', $posts, esc_attr($class), '' !== $module_id ? sprintf(' id="%1$s"', esc_attr($module_id)) : '', '' !== $module_class ? sprintf(' %1$s', esc_attr($module_class)) : '', '' !== $auto && in_array($auto, array('on', 'off')) ? esc_attr($auto) : 'off', '' !== $auto_speed && is_numeric($auto_speed) ? esc_attr($auto_speed) : '7000', '' !== $title ? sprintf('<h2>%s</h2>', esc_html($title)) : ''); return $output; }
function shortcode_callback($atts, $content = null, $function_name) { $title = $this->shortcode_atts['title']; $module_id = $this->shortcode_atts['module_id']; $module_class = $this->shortcode_atts['module_class']; $fullwidth = $this->shortcode_atts['fullwidth']; $include_categories = $this->shortcode_atts['include_categories']; $posts_number = $this->shortcode_atts['posts_number']; $show_title = $this->shortcode_atts['show_title']; $show_date = $this->shortcode_atts['show_date']; $background_layout = $this->shortcode_atts['background_layout']; $auto = $this->shortcode_atts['auto']; $auto_speed = $this->shortcode_atts['auto_speed']; $zoom_icon_color = $this->shortcode_atts['zoom_icon_color']; $hover_overlay_color = $this->shortcode_atts['hover_overlay_color']; $hover_icon = $this->shortcode_atts['hover_icon']; $module_class = ET_Builder_Element::add_module_order_class($module_class, $function_name); if ('' !== $zoom_icon_color) { ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%% .et_overlay:before', 'declaration' => sprintf('color: %1$s !important;', esc_html($zoom_icon_color)))); } if ('' !== $hover_overlay_color) { ET_Builder_Element::set_style($function_name, array('selector' => '%%order_class%% .et_overlay', 'declaration' => sprintf('background-color: %1$s; border-color: %1$s;', esc_html($hover_overlay_color)))); } $args = array(); if (is_numeric($posts_number) && $posts_number > 0) { $args['posts_per_page'] = $posts_number; } else { $args['nopaging'] = true; } if ('' !== $include_categories) { $args['tax_query'] = array(array('taxonomy' => 'project_category', 'field' => 'id', 'terms' => explode(',', $include_categories), 'operator' => 'IN')); } $projects = et_divi_get_projects($args); ob_start(); if ($projects->post_count > 0) { while ($projects->have_posts()) { $projects->the_post(); ?> <div id="post-<?php the_ID(); ?> " <?php post_class('et_pb_portfolio_item et_pb_grid_item '); ?> > <?php $thumb = ''; $width = 320; $width = (int) apply_filters('et_pb_portfolio_image_width', $width); $height = 241; $height = (int) apply_filters('et_pb_portfolio_image_height', $height); list($thumb_src, $thumb_width, $thumb_height) = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), array($width, $height)); $orientation = $thumb_height > $thumb_width ? 'portrait' : 'landscape'; if ('' !== $thumb_src) { ?> <div class="et_pb_portfolio_image <?php echo esc_attr($orientation); ?> "> <img src="<?php echo esc_url($thumb_src); ?> " alt="<?php echo esc_attr(get_the_title()); ?> "/> <div class="meta"> <a href="<?php esc_url(the_permalink()); ?> "> <?php $data_icon = '' !== $hover_icon ? sprintf(' data-icon="%1$s"', esc_attr(et_pb_process_font_icon($hover_icon))) : ''; printf('<span class="et_overlay%1$s"%2$s></span>', '' !== $hover_icon ? ' et_pb_inline_icon' : '', $data_icon); ?> <?php if ('on' === $show_title) { ?> <h3><?php the_title(); ?> </h3> <?php } ?> <?php if ('on' === $show_date) { ?> <p class="post-meta"><?php echo get_the_date(); ?> </p> <?php } ?> </a> </div> </div> <?php } ?> </div> <?php } } wp_reset_postdata(); $posts = ob_get_clean(); $class = " et_pb_module et_pb_bg_layout_{$background_layout}"; $output = sprintf('<div%4$s class="et_pb_fullwidth_portfolio %1$s%3$s%5$s" data-auto-rotate="%6$s" data-auto-rotate-speed="%7$s"> %8$s <div class="et_pb_portfolio_items clearfix" data-portfolio-columns=""> %2$s </div><!-- .et_pb_portfolio_items --> </div> <!-- .et_pb_fullwidth_portfolio -->', 'on' === $fullwidth ? 'et_pb_fullwidth_portfolio_carousel' : 'et_pb_fullwidth_portfolio_grid clearfix', $posts, esc_attr($class), '' !== $module_id ? sprintf(' id="%1$s"', esc_attr($module_id)) : '', '' !== $module_class ? sprintf(' %1$s', esc_attr($module_class)) : '', '' !== $auto && in_array($auto, array('on', 'off')) ? esc_attr($auto) : 'off', '' !== $auto_speed && is_numeric($auto_speed) ? esc_attr($auto_speed) : '7000', '' !== $title ? sprintf('<h2>%s</h2>', esc_html($title)) : ''); return $output; }