Lo primero que debes realizar es definir los tamaños de las imágenes en el functions.php de tu theme

 

Para mostrar las miniaturas en el home:

Hablar de ubuntu está demás… así que la captura de pantalla

[Click para ampliar]

y el user-agent de ubuntu mobile:

 

Para crear una plantilla personalizada debes crear un archivo llamado custom-[algun-nombre].php y cargarlo en la página de tu plantilla.
En dicho archivo debes agregar como base el siguiente contenido:

Por último, debes crear una página nueva y seleccionar en el menú de la derecha el ítem Plantilla, tal como aparece en la siguiente imagen

Saludos!

 

Probablemente ésta sea LA MEJOR función para redimensionar imágenes en WordPress, lo mejor es que la incluyes directamente en tu functions.php y la cargas tan simple como:

[sourcecode=”php”]

if (has_post_thumbnail ()) {
$image_id = get_post_thumbnail_id();
$image = vt_resize($image_id, ”, 250, 250, true, 100);
echo ‘

‘;
}

[/sourcecode]

Aunque le apliqué una mejora ínfima que permite ajustar la calidad de la imagen redimensionada, por lo que quedaría algo así

[sourcecode=”php”]

/*
* Resize images dynamically using wp built in functions
* Victor Teixeira
*
* php 5.2+
*
* Exemplo de uso:
*
*
*


*
* @param int $attach_id
* @param string $img_url
* @param int $width
* @param int $height
* @param bool $crop
* @param int $quality default: 90
* @return array
*/
function vt_resize($attach_id = null, $img_url = null, $width, $height, $crop = false, $quality=90) {
// this is an attachment, so we have the ID
if ($attach_id) {
$image_src = wp_get_attachment_image_src($attach_id, ‘full’);
$file_path = get_attached_file($attach_id);
// this is not an attachment, let’s use the image url
} else if ($img_url) {

$file_path = parse_url($img_url);
$file_path = $_SERVER[‘DOCUMENT_ROOT’] . $file_path[‘path’];

//$file_path = ltrim( $file_path[‘path’], ‘/’ );
//$file_path = rtrim( ABSPATH, ‘/’ ).$file_path[‘path’];

$orig_size = getimagesize($file_path);

$image_src[0] = $img_url;
$image_src[1] = $orig_size[0];
$image_src[2] = $orig_size[1];
}

$file_info = pathinfo($file_path);

$extension = ‘.’ . $file_info[‘extension’];

// the image path without the extension
$no_ext_path = $file_info[‘dirname’] . ‘/’ . $file_info[‘filename’];

$cropped_img_path = $no_ext_path . ‘-‘ . $width . ‘x’ . $height . $extension;

// checking if the file size is larger than the target size
// if it is smaller or the same size, stop right here and return
if ($image_src[1] > $width || $image_src[2] > $height) {

// the file is larger, check if the resized version already exists (for $crop = true but will also work for $crop = false if the sizes match)
if (file_exists($cropped_img_path)) {

$cropped_img_url = str_replace(basename($image_src[0]), basename($cropped_img_path), $image_src[0]);

$vt_image = array(
‘url’ => $cropped_img_url,
‘width’ => $width,
‘height’ => $height
);

return $vt_image;
}

// $crop = false
if ($crop == false) {

// calculate the size proportionaly
$proportional_size = wp_constrain_dimensions($image_src[1], $image_src[2], $width, $height);
$resized_img_path = $no_ext_path . ‘-‘ . $proportional_size[0] . ‘x’ . $proportional_size[1] . $extension;

// checking if the file already exists
if (file_exists($resized_img_path)) {

$resized_img_url = str_replace(basename($image_src[0]), basename($resized_img_path), $image_src[0]);

$vt_image = array(
‘url’ => $resized_img_url,
‘width’ => $proportional_size[0],
‘height’ => $proportional_size[1]
);

return $vt_image;
}
}

// no cache files – let’s finally resize it
$new_img_path = image_resize($file_path, $width, $height, $crop, $quality);
$new_img_size = getimagesize($new_img_path);
$new_img = str_replace(basename($image_src[0]), basename($new_img_path), $image_src[0]);

// resized output
$vt_image = array(
‘url’ => $new_img,
‘width’ => $new_img_size[0],
‘height’ => $new_img_size[1]
);

return $vt_image;
}

// default output – without resizing
$vt_image = array(
‘url’ => $image_src[0],
‘width’ => $image_src[1],
‘height’ => $image_src[2]
);

return $vt_image;
}

[/sourcecode]

100% recomendada =)

Saludos

Cuando escribes un plugin en wordpress puedes llamarlo directamente desde tu entrada / página con

[sourcecode language=”php”]


[/sourcecode]

Para crear un atajo debes hacer lo siguiente:

En tu plugin

[sourcecode language=”php”]
//
//
//
//
function mi_funcion()
{
// To-Do
}
add_shortcode(“El-Nombre-De-Mi-Atajo”, “mi_funcion”);
[/sourcecode]

En tu entrada / Página sólo debes agregar la línea

[sourcecode language=”php”]
[El-Nombre-De-Mi-Atajo]
[/sourcecode]

Por ende no será necesario que instales plugins de terceros como PHPExec para poder ejecutar tu plugin =)