protected function onShortcode($content, $code, \Drone\HTML &$html) { // ID $int_id = (int) $this->getID(); // Retina if ($int_id && $this->so('width') && ($size = Func::wpGetImageSizeName($content)) !== false) { $content = str_replace('<img ', '<img ' . trim(\Everything::getAttachmentImages($int_id, $size, 'html') . ' '), $content); } // Class $class = preg_match('/class="([^"]*)"/i', $content, $m) ? preg_replace('/\\balign(none|left|right|center)\\b/i', '', $m[1]) : ''; // Content $content = preg_replace('/class="([^"]*)"/i', '', trim($content)); // Images attributes $atts = array(); if (preg_match_all('/\\b(border|hover|fancybox)-([a-z]+)\\b/i', $class, $matches, PREG_SET_ORDER) > 0) { foreach ($matches as $match) { $atts[$match[1]] = str_ireplace('none', '', $match[2]); $class = str_replace($match[0], '', $class); } } // Settings if (strpos($content, '<a ') === 0) { $content = str_replace('<a ', sprintf('<a %s data-fancybox-group="post-%d" data-fancybox-title="%s" ', \Everything::getImageAttrs('a', $atts, 'html'), get_the_ID(), esc_attr($this->so('caption'))), $content); } else { $content = sprintf('<div %s>%s</div>', \Everything::getImageAttrs('div', $atts, 'html'), $content); } // Figure $html = HTML::figure()->id($this->so('id') ? $this->so('id') : null)->addClass($class, $this->so('align'), $this->so('align') == 'alignleft' || $this->so('align') == 'alignright' ? 'fixed' : null)->style($this->so('width') ? "width: {$this->so('width')}px;" : null)->add($content); // Caption if ($this->so('caption')) { $html->addNew('figcaption')->add($this->so('caption')); } }
function woocommerce_subcategory_thumbnail($category) { // Figure $figure = \Drone\HTML::figure()->class('featured full-width'); // Hyperlink $a = $figure->addNew('a')->attr(Everything::getImageAttrs('a', array('fancybox' => false)))->href(get_term_link($category->slug, 'product_cat')); // Thumbnail $thumbnail_id = get_woocommerce_term_meta($category->term_id, 'thumbnail_id', true); $thumbnail_size = apply_filters('single_product_small_thumbnail_size', 'shop_catalog'); if ($thumbnail_id) { $a->add(wp_get_attachment_image($thumbnail_id, $thumbnail_size)); } elseif (woocommerce_placeholder_img_src()) { $a->add(woocommerce_placeholder_img($thumbnail_size)); } echo $figure->html(); }