¿Qué puede causar que una imagen destacada no se muestre?
Estoy escribiendo un tema hijo para el tema editr y la imagen destacada no se muestra para una nueva entrada. Las imágenes destacadas sí aparecen para el contenido de demostración. Para la nueva entrada, se renderiza el siguiente marcado:
<div class="featured" data-img_bg="">
<img src="" alt="" style="display: block;">
</div>
La sección relevante de la plantilla es:
<?php if ( ( $show_thumb || $show_thumb == '' ) && has_post_thumbnail() ) { ?>
<div class="featured" data-img_bg="<?php echo $image; ?>">
<img src="<?php echo $image; ?>" alt="">
</div>
<?php } ?>
Esto está en una máquina virtual local con Vagrant ejecutando Ubuntu 14.04, nginx, php 5.6.
He marcado 'Mostrar miniatura destacada?' y '¿Entrada destacada?' en el editor de entradas. Al principio de la plantilla, encuentro que el valor de $image está vacío:
<?php
$show_thumb = get_post_meta(get_the_ID(), 'aq_show_thumbnail', TRUE);
$thumb = wp_get_attachment_url( get_post_thumbnail_id(), 'full');
echo 'thumb value is set to'.$thumb;
$image = aq_resize( $thumb, 1000, 400, true );
echo 'image value is set to'.$image;
?>
ACTUALIZACIÓN
Al depurar con xdebug se muestra que la función aq_resize falla en el siguiente código:
else {
$editor = wp_get_image_editor($img_path);
if ( is_wp_error( $editor ) || is_wp_error( $editor->resize( $width, $height, $crop ) ) )
return false;
$resized_file = $editor->save();
if(!is_wp_error($resized_file)) {
$resized_rel_path = str_replace( $upload_dir, '', $resized_file['path']);
$img_url = $upload_url . $resized_rel_path;
} else {
return false;
}
}
$editor
está configurado como 'No se pudo seleccionar ningún editor.'

La extensión PHP GD no estaba instalada en mi máquina de desarrollo. Instalar php5-gd resolvió el problema - sudo apt-get install php5-gd
Al depurar con xdebug, descubrí que la función aq_resize
del tema fallaba en el siguiente código:
else {
$editor = wp_get_image_editor($img_path);
if ( is_wp_error( $editor ) || is_wp_error( $editor->resize( $width, $height, $crop ) ) )
return false;
$resized_file = $editor->save();
if(!is_wp_error($resized_file)) {
$resized_rel_path = str_replace( $upload_dir, '', $resized_file['path']);
$img_url = $upload_url . $resized_rel_path;
} else {
return false;
}
}
$editor
estaba configurado como 'No se pudo seleccionar ningún editor.'

¿Se envía la salida HTML a la página? Si no, entonces el problema casi seguro está en tu sentencia if. ¿Debería ser:
if ( ( $show_thumb || $show_thumb !== '' ) && has_post_thumbnail() )
en lugar de:
if ( ( $show_thumb || $show_thumb == '' ) && has_post_thumbnail() )
