gi_fullsize(); gi_medium(); gi_thumbnail(); Adicionando um parâmetro, ele vai parar dentro da tag de imagem gerada. Por padrão, o plugin retornará uma string contendo a tag da imagem gerada, mas você pode passar o segundo parametro como true para pedir que ele faça a impressão desta string."
Version: 0.5
Author: DGmike
Author URI: http://dgmike.wordpress.com
*/
/**
* Pega o primeiro arquivo que foi feito o upload filho (relacionado) deste post
*
* @param object $post Post global gerado pelo the_post()
* @return object Primeiro anexo (imagem) do post
*/
function gi_file ($all = false){
global $post;
$images = array ();
if ($itens = get_children($post->ID))
foreach ($itens as $item)
# Versão antiga de como pegar um arquivo de imagem (pela extensão)
# A função anterior usava expressões regulares, o que diminui o
# desempenho do PHP.
#
# preg_match ('/\.(jpg|jpeg|png|gif|bmp)$/', $item->guid)
#
# Nova versão: pelo mime
if (false !== strpos($item->post_mime_type, 'image'))
$images[] = $item;
return $all ? $images : reset($images);
}
/**
* Get a library of images from a post
*
* @param string $size Choose: all, fullsize, medium, thumbnail
* @param string $extra Extra for your img tag
* @param bool $print Do you want to print (only used if yout $return_as are 'string')
* @param string $return_as Choose: array, brute_array, string
* @return string|array
*/
function gi_library ($size = 'thumbnail', $extra = '', $print = false, $return_as = 'string') {
$images = gi_file(true);
$imgs = array();
foreach ($images as $image)
$imgs[] = gi_image($image, 'all');
$images = array();
foreach ($imgs as $img) {
if ($size == 'all') $images[] = $img;
else $images[] = array ('title' => $img['title'], $size => $img[$size]);
}
if ($return_as == 'brute_array') return $images;
$imgs = array();
foreach ($images as $image) {
if (in_array($size, array('fullsize', 'medium', 'thumbnail'))) $imgs[] = sprintf('
', $image[$size], $image['title'], $extra);
if ($size == 'all') {
$imgs[] = sprintf('
', $image['fullsize'], $image['title'], $extra);
$imgs[] = sprintf('
', $image['medium'], $image['title'], $extra);
$imgs[] = sprintf('
', $image['thumbnail'], $image['title'], $extra);
}
}
if ($return_as == 'array') return $imgs;
$imgs = implode("\n", $imgs);
if ($return_as == 'string') {
if ($print) print $imgs;
return $imgs;
}
}
function gi_fullsize($extra = '', $print = false) {
$image = gi_file ();
if ($url = gi_image($image,'fullsize')) {
$return = sprintf('
', $url, $image->post_title, $extra);
if ($print) print $return;
else return $return;
}
}
function gi_medium($extra = '', $print = false) {
$image = gi_file ();
if ($url = gi_image($image,'medium')) {
$return = sprintf('
', $url, $image->post_title, $extra);
if ($print) print $return;
else return $return;
}
}
function gi_thumbnail($extra = '', $print = false) {
$image = gi_file ();
if ($url = gi_image($image,'thumbnail')) {
$return = sprintf('
', $url, $image->post_title, $extra);
if ($print) print $return;
else return $return;
}
}
function gi_image($image, $size) {
if (!$image) $image = gi_file();
if (!$image || array_key_exists($size, array ('fullsize', 'medium', 'thumbnail') ) ) return;
$meta = wp_get_attachment_metadata($image->ID);
$pathinfo = pathinfo($image->guid);
$urls = array ('title' => $image->post_title, 'fullsize' => $image->guid);
if (!$meta['sizes']['medium']) $urls['medium'] = $image->guid;
else $urls['medium'] = $pathinfo['dirname'] . '/' . $meta['sizes']['medium']['file'];
if (!$meta['sizes']['thumbnail']) $urls['thumbnail'] = $urls['medium'];
else $urls['thumbnail'] = $pathinfo['dirname'] . '/' . $meta['sizes']['thumbnail']['file'];
if ($size == 'all') return $urls;
return $urls[$size];
}
?>