Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Imagen destacada en un post en WordPress: sacándole partido a post_thumbnail

Imago voragine.net
[actualizado el ]

WordPress permite desde su versión 2.9 seleccionar una de las imágenes que adjuntamos a una entrada como destacada (featured image). Esto se puede hacer desde el editor: en la página de edición del post, una vez hayamos habilitado esta capacidad en nuestro theme, aparecerá una nueva caja desde la que podemos seleccionar la imagen que vamos a usar como destacada.

La funcionalidad featured image permite programar con mucha más flexibilidad cómo se muestran las imágenes asociadas a un post. Además provee una manera de gestionar las imágenes destacadas que no es tediosa ni difícil para los editores.

Para habilitar esta capacidad en nuestra plantilla tenemos que añadir la siguiente línea de código al archivo functions.php del theme:

add_theme_support( 'post-thumbnails' );

En el caso de que queramos habilitar el uso de imágenes destacadas en un custom post type, basta añadir el valor thumbnail a la opción support de la función register_post_type(), también en el functions.php. Por ejemplo:

'supports' => array('title', 'editor','excerpt','custom-fields','author','page-attributes','thumbnail')

Para jugar con la imagen destacada en nuestro tema, tenemos un conjunto de funciones que nos permiten saber cuándo un post tiene imagen destacada y, en ese caso, mostrarla dónde y cómo queramos.

El siguiente código dentro del loop de WordPress, devuelve la imagen destacada separada del contenido del post, en el caso de que la entrada tenga alguna:

if ( has_post_thumbnail() ) {
	the_post_thumbnail();
}
the_content();

35 comentarios

  1. y si quiero mostrar por un lado la imagen destacada como entrada del post pero luego que esa imagen no se muestre y se muestro solo el post?.

    No sé si me explicado correctamente…

    1. Hola profesor,

      depende de dónde quieras mostrar cada cosa. Si por ejemplo, quieres mostrar los thumbnails en los posts de la portada pero no en sus archivos single.php respectivos, es un tema de plantillas.

      Si lo que quieres es mostrar unas veces sí y otras no los thumbnails de los posts, en función de una condición, digamos por ejemplo la pertenencia a una determinada categoría, puedes usar una sentencia condicional.

      Para más información sobre las sentencias condicionales en WordPress: http://codex.wordpress.org/Conditional_Tags.

    • Por Luis

    Hola, tengo una web sobre WordPress y el problema que tengo es que la imagen destacada también se ve dentro del post.

    Por ejemplo, uso la imagen destacada para la pagina de inicio, pero al entrar al post quiero que se vea un video. El problema es que se ve el video y también la imagen destacada.

    ¿Se puede evitar?
    Saludos y Gracias, Luis

    1. Hola Luis,

      sí, claro que se puede evitar. Tienes que eliminar de la plantilla que genera la página de un post (normalmente single.php) la función que está llamando a la imagen destacada: casi con toda seguridad debe ser the_post_thumbnail().

      Elimina esa función del single.php.

    • Por JorgeCid

    Hola skotperez, cabe destacar que me gusto mucho tu articulo explica todo muy facil y preciso, pero creo que el hecho de que mi tema sea diferente no lo hace funcionar igual… quiero que aparezca la imagen destacada dentro del articulo… que me recomendarias? ya que lo intente todo y simplemente no pasa nada…

    y de paso sabes como puedo ver el tamaño del sidebar? aparte de cambiar el tamaño quiero agregar el plugin de entradas populares pero necesito el tamaño del sidebar y no lo veo por ningun lado las dimensiones

    1. Hola JorgeCid,

      si lo que quieres es que la imagen destacada aparezca en la página de un artículo, tienes que añadir el último código que aparece en este tutorial en la plantilla single.php de tu theme.

      En cuanto al ancho de tu sidebar. Si es la web que has introducido al comentar, tiene un ancho variable en función del ancho de la ventana del navegador, ya que el theme es responsive. Quizás como ancho puedas darle un porcentaje, prueba 100% por ejemplo.

    • Por Alique

    Yo tengo un problema, estoy haciendo un sitio con este CMS y quiero colocar imágenes distintas de detalle y las que vendrían a ser las principales de los single.php. En su defecto estoy tratando de escalarlas o cropearlas con add_image_size(); pero no logro otra cosa que me reduzca la imagen principal (la grande) al tamaño ancho seteado en la del thumb, no se si me explico bien… cualquier ayuda será bien agradecida!

    Un saludo!

    1. Hola Alique,

      no entiendo muy bien la pregunta. En cualquier caso, add_image_size lo que hace es añadir un nuevo tamaño de imagen al sistema, para que al subir una imagen a WordPress se genere una versión más de la imagen al tamaño configurado con add_image_size.

      Recuerda que al añadir nuevos tamaños tienes que añadir también sus nombres al listado con el hook image_size_names_choose.

  2. Hola antes que nada, gracias por la información, me ha aclarado muchas cosas.
    Yo tengo una duda, tengo un blog wordpress (con la plantilla Twenty eleven), el caso es que por defecto la plantilla no trae la opción de poder mostrar en la pagina de inicio un resumen de mis entradas con foto. Entonces yo a través de una modificación en el content.php la he puesto, la cosa es que me sale muy pequeña y no se como ponerla mas grande.
    Me podrías indicar donde debo modificar?

    Un saludo y gracias de antemano!

    1. Hola Montse,

      la función the_post_thumbnail() puede invocarse con dos parámetros. El primero de ellos define el tamaño de la imagen. Por ejemplo para que la función te devuelva el tamaño medio:

      the_post_thumbnail("medium");

    • Por sara •

    puedo poner en lugar de una imagen destacada un slider de fotos? el artículo me deja ponerlo pero se situa a un lado con el texto y lo que quiero es ponerlo como cabecera, igual que hace la imagen destacada.
    Lo necesito para mi empresa

    Muchas gracias

    un saludo

    1. Hola Sara,

      la imagen destacada (post_thumbnail) es única para cada post, así que no está pensada para hacer slides.

    • Por Francisco •

    Cuando trato de poner una imagen destacada con la opción de Usar como imagen destacada de wordpress me sale un mensaje de que hay error y que no se puede cargar, pese a que la imagen no es muy grande (menor a 40 Kb) agradecería que alguien me ayudara.

    Saludos

    1. Hola Francisco, ¿puedes escribir aquí el error? Sin el error es difícil saber qué ocurre.

    • Por Jaime Castrillon •

    Hola Amigo,
    Como hago para poder agregar una imagen destacada dentro de la página de blogs?
    Tengo una página marcada como página de entradas (para la parte del blog) , ésta página tiene una imagen destacada y al momento de verla muestra todas las entradas del blog, pero no muestra la imagen.
    Sabes algo al respecto?
    De antemano muchas gracias.

    1. Hola Jaime,

      la página de entradas para en WordPress es una manera de conseguir un listado de entradas: aunque es una página no funciona exactamente con tal, como el resto de páginas. Por ejemplo, en vez de mostrar el contenido de esa página, muestra el listado de posts. Lo mismo ocurre con la imagen destacada que configures en dicha página: no se mostrará.

    • Por Pablo •

    Hola, me funcionó pero ahora ademas de mostrar la imagen en los POST de la portada del sitio, me muestra todo el texto completo en lugar del resumen como lo hacia antes de incluir el nuevo código, dejo el código completo para revisar.

    Muchas gracias.

    <article id="post-» >

    <?php
    if ( ( is_singular() || 'content' == $bavotasan_theme_options['excerpt_content'] ) && 'main' == $mb_content_area && ! is_archive() && ! is_search() ) {
    the_content( 'Leer más →' );
    } else {
    $image_name = ( 'main' == $mb_content_area ) ? 'thumbnail' : '1_column';
    if ( is_home() ) {
    $image_name = '1_column';
    $image_name = ( 'three-col c4' == $class ) ? '3_column' : $image_name;
    $image_name = ( 'two-col c6' == $class ) ? '2_column' : $image_name;
    }

    if( has_post_thumbnail() ) {
    echo '‘;
    the_post_thumbnail( $image_name, array( ‘class’ => ‘alignleft’ ) );
    echo ‘
    ‘;
    }
    the_excerpt();

    /////////////////////////////////////////

    if ( has_post_thumbnail() ) {
    the_post_thumbnail();
    }
    the_content();

    /////////////////////////////////////////
    }
    ?>

    <!– #post- –>

    • Por admin

    Hola Pablo,

    puedes eliminar las siguientes líneas:

    if( has_post_thumbnail() ) {
    echo '‘;
    the_post_thumbnail( $image_name, array( ‘class’ => ‘alignleft’ ) );
    echo ‘‘;
    }
    the_excerpt();
    /////////////////////////////////////////
    
    if ( has_post_thumbnail() ) {
    the_post_thumbnail();
    }
    the_content();
    
    /////////////////////////////////////////

    Y sustituirlas por:

    if ( has_post_thumbnail() ) {
    the_post_thumbnail( $image_name, array( ‘class’ => ‘alignleft’ ) );
    }
    the_excerpt();
    • Por Cesar Ceballos •

    Hola buen dia, tengo un problema mi tema crea un slider de una categoria especifica por ejemplo «las entradas con la categoria slider y asignada una imagen destacada» con esto se muestra la imagen destacada y se desliza mi pregunta es puedo usar un video o una imagen gif en la imagen destacada para que sea esos elementos que se deslizen???? gracias :)

    1. Hola César, depende de cómo esté programado el theme que estés usando.

      Lo normal es que no se pueda ya que WordPress genera varias versiones (distintos tamaños para usar en distintos sitios de la web) de cada imagen que se añade a la web mediante el gestor de medios. A partir de la imagen original WordPress genera las versiones en formato PNG o JPG.

      Para la imagen destacada WordPress suele usar una de estas versiones, la versión thumbnail.

    • Por jp •

    Profesor como esta, una consulta como puedeo mantener el slider de fotos en todas las paginas.
    O depende mucho del Tema que estoy utilizando.

    mucha gracias por el apoyo

    1. Hola jp, efectivamente depende por completo del tema que estés usando.

    • Por Begoña •

    Hola, muchas gracias por este post, es de gran ayuda pero no acabo de encontrar solución a mi problema.
    El problema está en que la imagen destacada del post pierde calidad en relación a las imágenes que hay insertadas en la entrada.

    El ejemplo en esta entrada:

    http://ahoravasylocascas.es/cascablog/inauguracion-la-moderna/

    La imagen destacada es la misma que la primera de la entrada pero como verás con muchísima diferencia en la resolución (la imagen es la misma). En realidad lo que está haciendo WordPress es bajar la resolución en la imagen destacada y no se porqué.
    Aparentemente el style está bien y el functions.php también aunque en éste último me pierdo un poco.

    • Por Josec •

    Hola como puedo añadir un texto de ayuda para el editor, que dia por ejemplo suba una imagen de 300×300 algo así que le indique de quela tamaño debe de ser la imagen a subir.

    1. Hola Josec,

      para personalizar el panel de edición de WordPress puedes usar un plugin como Pods.

    • Por jose •

    Hola, una pregunta, yo lo que quiero es que en mi plantilla de wordpress en el banner se ponga cómo fondo la imágen destacada que pongo en cada página o post que publico y no tengo ni idea… ¿podría ayudarme? Por si sirve de algo dejo mi dirección del blos (no funciona entre las 00:00 y la 1:00)
    https://elhilodeariadna.000webhostapp.com

    1. Hola Jose,

      para incluir la imagen destacada en posts tienes que incluir el siguiente código en el archivo single.php de tu theme:

      if ( has_post_thumbnail() ) {
      	    the_post_thumbnail();
      }

      Para incluir la imagen destacada en páginas, el mismo código en el archivo page.php.

      Dónde incluirlo, en qué parte del archivo, depende mucho de la estructura de tu theme.

    • Por Josep

    Quiero hacer que en una pagina determinada no aparezca la imagen destacada, se puede hacer con css adicional?

    1. Hola Josep,

      se puede hacer añadiendo reglas de CSS para ocultar la imagen, por ejemplo display: none;.

      Sin embargo es mejor hacer que la imagen destacada no se cargue para la página que quieras, en vez de ocultarla. Esto lo puedes hacer con una sentencia condicional de PHP por ejemplo, en la que no cargas la imagen destacada para los IDs de página que quieras.

  3. Hola Profesor, desearia saber como puedo poner el nombre del autor y de la fotografia bajo la imagen que encabeza el posts

    Muy agradecido, por su respuesta

    1. Hola Mauricio,

      se suele usar para los créditos de la imagen el campo leyenda (caption). El Luego puedes mostrar el caption llamando al campo content de la imagen.

    • Por Web •

    Hola tengo un problema, uso la plantilla Uncode y en ella tiene la opción de mostrar la imagen destacada en el post sin embargo solamente me muestra las que son de tamaño grande (más de 1500 de ancho) si la imagen es más pequeña simplemente no la muestra, alguna idea de como solucionarlo?

    1. Hola,

      sin ver el código del theme es difícil saber por qué está ocurriendo eso. Quizás alguna de las opciones de configuración del theme te permita cambiar el tamaño mínimo al que se muestran las imágenes destacadas…

        • Por Web •

        La plantilla no me permite modificar el tamaño el código es el siguiente:
        post_type;

        /** Get general datas **/
        if (isset($metabox_data[‘_uncode_specific_style’][0]) && $metabox_data[‘_uncode_specific_style’][0] !== ») {
        $style = $metabox_data[‘_uncode_specific_style’][0];
        if (isset($metabox_data[‘_uncode_specific_bg_color’][0]) && $metabox_data[‘_uncode_specific_bg_color’][0] !== ») {
        $bg_color = $metabox_data[‘_uncode_specific_bg_color’][0];
        }
        } else {
        $style = ot_get_option(‘_uncode_general_style’);
        if (isset($metabox_data[‘_uncode_specific_bg_color’][0]) && $metabox_data[‘_uncode_specific_bg_color’][0] !== ») {
        $bg_color = $metabox_data[‘_uncode_specific_bg_color’][0];
        } else {
        $bg_color = ot_get_option(‘_uncode_general_bg_color’);
        }
        }
        $bg_color = ($bg_color == ») ? ‘ style-‘.$style.’-bg’ : ‘ style-‘.$bg_color.’-bg’;

        /** Get page width info **/
        $boxed = ot_get_option(‘_uncode_boxed’);

        $page_content_full = (isset($metabox_data[‘_uncode_specific_layout_width’][0])) ? $metabox_data[‘_uncode_specific_layout_width’][0] : »;
        if ($page_content_full === ») {

        /** Use generic page width **/
        $generic_content_full = ot_get_option(‘_uncode_’ . $post_type . ‘_layout_width’);
        if ($generic_content_full === ») {
        $main_content_full = ot_get_option(‘_uncode_body_full’);
        if ($main_content_full === » || $main_content_full === ‘off’) {
        $limit_content_width = ‘ limit-width’;
        }
        } else {
        if ($generic_content_full === ‘limit’) {
        $generic_custom_width = ot_get_option(‘_uncode_’ . $post_type . ‘_layout_width_custom’);
        if ($generic_custom_width[1] === ‘px’) {
        $generic_custom_width[0] = 12 * round(($generic_custom_width[0]) / 12);
        }
        if (is_array($generic_custom_width) && !empty($generic_custom_width)) {
        $page_custom_width = ‘ style=»max-width: ‘ . implode(«», $generic_custom_width) . ‘; margin: auto;»‘;
        }
        }
        }
        } else {

        /** Override page width **/
        if ($page_content_full === ‘limit’) {
        $limit_content_width = ‘ limit-width’;
        $page_custom_width = (isset($metabox_data[‘_uncode_specific_layout_width_custom’][0])) ? unserialize($metabox_data[‘_uncode_specific_layout_width_custom’][0]) : »;
        if (is_array($page_custom_width) && !empty($page_custom_width) && $page_custom_width[0] !== ») {
        if ($page_custom_width[1] === ‘px’) {
        $page_custom_width[0] = 12 * round(($page_custom_width[0]) / 12);
        }
        $page_custom_width = ‘ style=»max-width: ‘ . implode(«», $page_custom_width) . ‘; margin: auto;»‘;
        } else {
        $page_custom_width = »;
        }
        }
        }

        $media = get_post_meta($post->ID, ‘_uncode_featured_media’, 1);
        $media_display = get_post_meta($post->ID, ‘_uncode_featured_media_display’, 1);
        $featured_image = get_post_thumbnail_id($post->ID);
        if ($featured_image === ») {
        $featured_image = $media;
        }

        /** Collect header data **/
        if (isset($metabox_data[‘_uncode_header_type’][0]) && $metabox_data[‘_uncode_header_type’][0] !== ») {
        $page_header_type = $metabox_data[‘_uncode_header_type’][0];
        if ($page_header_type !== ‘none’) {
        $meta_data = uncode_get_specific_header_data($metabox_data, $post_type, $featured_image);
        $metabox_data = $meta_data[‘meta’];
        $show_title = $meta_data[‘show_title’];
        }
        } else {
        $page_header_type = ot_get_option(‘_uncode_’ . $post_type . ‘_header’);
        if ($page_header_type !== » && $page_header_type !== ‘none’) {
        $metabox_data[‘_uncode_header_type’] = array($page_header_type);
        $meta_data = uncode_get_general_header_data($metabox_data, $post_type, $featured_image);
        $metabox_data = $meta_data[‘meta’];
        $show_title = $meta_data[‘show_title’];
        }
        }

        /** Get layout info **/
        if (isset($metabox_data[‘_uncode_active_sidebar’][0]) && $metabox_data[‘_uncode_active_sidebar’][0] !== ») {
        if ($metabox_data[‘_uncode_active_sidebar’][0] !== ‘off’) {
        $layout = (isset($metabox_data[‘_uncode_sidebar_position’][0])) ? $metabox_data[‘_uncode_sidebar_position’][0] : »;
        $sidebar = (isset($metabox_data[‘_uncode_sidebar’][0])) ? $metabox_data[‘_uncode_sidebar’][0] : »;
        $sidebar_size = (isset($metabox_data[‘_uncode_sidebar_size’][0])) ? $metabox_data[‘_uncode_sidebar_size’][0] : 4;
        $sidebar_sticky = (isset($metabox_data[‘_uncode_sidebar_sticky’][0]) && $metabox_data[‘_uncode_sidebar_sticky’][0] === ‘on’) ? ‘ sticky-element sticky-sidebar’ : »;
        $sidebar_fill = (isset($metabox_data[‘_uncode_sidebar_fill’][0])) ? $metabox_data[‘_uncode_sidebar_fill’][0] : »;
        $sidebar_style = (isset($metabox_data[‘_uncode_sidebar_style’][0])) ? $metabox_data[‘_uncode_sidebar_style’][0] : $style;
        $sidebar_bg_color = (isset($metabox_data[‘_uncode_sidebar_bgcolor’][0]) && $metabox_data[‘_uncode_sidebar_bgcolor’][0] !== ») ? ‘ style-‘ . $metabox_data[‘_uncode_sidebar_bgcolor’][0] . ‘-bg’ : »;
        }
        } else {
        $activate_sidebar = ot_get_option(‘_uncode_’ . $post_type . ‘_activate_sidebar’);
        $sidebar_name = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar’);

        if ($activate_sidebar !== ‘off’ && is_active_sidebar( $sidebar_name )) {
        $layout = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar_position’);
        if ($layout === ») {
        $layout = ‘sidebar_right’;
        }
        $sidebar = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar’);
        $sidebar_style = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar_style’);
        $sidebar_size = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar_size’);
        $sidebar_sticky = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar_sticky’);
        $sidebar_sticky = ($sidebar_sticky === ‘on’) ? ‘ sticky-element sticky-sidebar’ : »;
        $sidebar_fill = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar_fill’);
        $sidebar_bg_color = ot_get_option(‘_uncode_’ . $post_type . ‘_sidebar_bgcolor’);
        $sidebar_bg_color = ($sidebar_bg_color !== ») ? ‘ style-‘ . $sidebar_bg_color . ‘-bg’ : »;
        }
        }
        if ($sidebar_style === ») {
        $sidebar_style = $style;
        }

        /** Get breadcrumb info **/
        $generic_breadcrumb = ot_get_option(‘_uncode_’ . $post_type . ‘_breadcrumb’);
        $page_breadcrumb = (isset($metabox_data[‘_uncode_specific_breadcrumb’][0])) ? $metabox_data[‘_uncode_specific_breadcrumb’][0] : »;
        if ($page_breadcrumb === ») {
        $breadcrumb_align = ot_get_option(‘_uncode_’ . $post_type . ‘_breadcrumb_align’);
        $show_breadcrumb = ($generic_breadcrumb === ‘off’) ? false : true;
        } else {
        $breadcrumb_align = (isset($metabox_data[‘_uncode_specific_breadcrumb_align’][0])) ? $metabox_data[‘_uncode_specific_breadcrumb_align’][0] : »;
        $show_breadcrumb = ($page_breadcrumb === ‘off’) ? false : true;
        }

        /** Get title info **/
        $generic_show_title = ot_get_option(‘_uncode_’ . $post_type . ‘_title’);
        $page_show_title = (isset($metabox_data[‘_uncode_specific_title’][0])) ? $metabox_data[‘_uncode_specific_title’][0] : »;
        if ($page_show_title === ») {
        $show_title = ($generic_show_title === ‘off’) ? false : true;
        } else {
        $show_title = ($page_show_title === ‘off’) ? false : true;
        }

        /** Get media info **/
        $generic_show_media = ot_get_option(‘_uncode_’ . $post_type . ‘_media’);
        $page_show_media = (isset($metabox_data[‘_uncode_specific_media’][0])) ? $metabox_data[‘_uncode_specific_media’][0] : »;
        if ($page_show_media === ») {
        $show_media = ($generic_show_media === ‘off’) ? false : true;
        } else {
        $show_media = ($page_show_media === ‘off’) ? false : true;
        }

        if ( !$show_media && $featured_image !== » ) {
        $generic_show_featured_media = ot_get_option(‘_uncode_’ . $post_type . ‘_featured_media’);
        $page_show_featured_media = (isset($metabox_data[‘_uncode_specific_featured_media’][0]) && $metabox_data[‘_uncode_specific_featured_media’][0] !== ») ? $metabox_data[‘_uncode_specific_featured_media’][0] : $generic_show_featured_media;

        if ( $page_show_featured_media === ‘on’ ) {
        $media = $featured_image;
        }
        } else {
        $page_show_featured_media = false;
        }

        $show_media = $page_show_featured_media && $page_show_featured_media!==’off’ ? true : $show_media;

        /**
        * DATA COLLECTION – END
        *
        */

        //wp_get_attachment_image_src( get_post_meta($pageID,’programa-6′,1) , ‘large’)[0];

        while (have_posts()):
        the_post();

        /** Build header **/
        if ($page_header_type !== » && $page_header_type !== ‘none’) {
        $page_header = new unheader($metabox_data, $post->post_title, $post->post_excerpt);

        $header_html = $page_header->html;
        if ($header_html !== ») {
        echo »;
        echo uncode_remove_p_tag( $page_header->html );
        echo »;
        }

        if (!empty($page_header->poster_id) && $page_header->poster_id !== false && $media !== ») {
        $media = $page_header->poster_id;
        }
        }
        echo ‘UNCODE.initHeader();’;
        /** Build breadcrumb **/

        if ($show_breadcrumb && !is_front_page() && !is_home()) {
        if ($breadcrumb_align === ») {
        $breadcrumb_align = ‘right’;
        }
        $breadcrumb_align = ‘ text-‘ . $breadcrumb_align;

        $content_breadcrumb = uncode_breadcrumbs();
        $breadcrumb_title = » . get_the_title() . »;
        echo uncode_get_row_template($breadcrumb_title . $content_breadcrumb , », ($page_custom_width !== » ? ‘ limit-width’ : $limit_content_width), $style, ‘ row-breadcrumb row-breadcrumb-‘ . $style . $breadcrumb_align, ‘half’, true, ‘half’);
        }

        /** Build media **/

        if ($media !== » && !$with_builder && $show_media && !post_password_required()) {
        if ($layout === ‘sidebar_right’ || $layout === ‘sidebar_left’) {
        $media_size = 10 – $sidebar_size;
        } else {
        $media_size = 12;
        }

        $media_array = explode(‘,’, $media);
        $media_counter = count($media_array);
        $rand_id = uncode_big_rand();
        if ($media_counter === 0) {
        $media_array = array( $media );
        }

        if ($media_display === ‘isotope’) {
        $media_content.=’

        ‘;
        }

        foreach ($media_array as $key => $value) {//check if albums are set among medias
        if ( get_post_mime_type($value) == ‘oembed/gallery’ && wp_get_post_parent_id($value) ) {
        $parent_id = wp_get_post_parent_id($value);
        $media_album_ids = get_post_meta($parent_id, ‘_uncode_featured_media’, true);
        $media_arr = explode(‘,’, $media);//eplode $media string to add album IDs
        $media_album_ids_arr = explode(‘,’, $media_album_ids);
        if ( is_array($media_album_ids_arr) && !empty($media_album_ids_arr) ) {
        unset($media_array[$key]);//remove album featured image from array
        $media_album_ids_arr = array_reverse($media_album_ids_arr);
        foreach ($media_album_ids_arr as $_key => $_value) {
        array_splice($media_array, $key, 0, $_value);
        array_splice($media_arr, $key, 0, $_value);
        }
        }
        $media = implode(«,», $media_arr);//implode $media again after adding album IDs
        }
        }

        foreach ($media_array as $key => $value) {
        if ($media_display === ‘carousel’) {
        $value = $media;
        }
        $block_data = array();
        $block_data[‘media_id’] = $value;
        $block_data[‘classes’] = array(
        ‘tmb’
        );
        $block_data[‘text_padding’] = ‘no-block-padding’;
        if ($media_display === ‘isotope’) {
        $block_data[‘single_width’] = 4;
        $block_data[‘classes’][] = ‘tmb-iso-w4’;
        } else {
        $block_data[‘single_width’] = $media_size;
        }
        $block_data[‘single_style’] = $style;
        $block_data[‘single_text’] = ‘under’;
        $block_data[‘classes’][] = ‘tmb-‘ . $style;
        if ($media_display === ‘isotope’) {
        $block_data[‘classes’][] = ‘tmb-overlay-anim’;
        $block_data[‘classes’][] = ‘tmb-overlay-text-anim’;
        $block_data[‘single_icon’] = ‘fa fa-plus2’;
        $block_data[‘overlay_color’] = ($style == ‘light’) ? ‘style-black-bg’ : ‘style-white-bg’;
        $block_data[‘overlay_opacity’] = ’20’;
        $lightbox_classes = array();
        $lightbox_classes[‘data-noarr’] = false;
        } else {
        $lightbox_classes = false;
        $block_data[‘link_class’] = ‘inactive-link’;
        $block_data[‘link’] = ‘#’;
        }
        $block_data[‘title_classes’] = array();
        $block_data[‘tmb_data’] = array();
        $block_layout[‘media’] = array();
        $block_layout[‘icon’] = array();
        $media_html = uncode_create_single_block($block_data, $rand_id, ‘masonry’, $block_layout, $lightbox_classes, false, true);
        if ($media_display !== ‘isotope’) {
        $media_content.= » . $media_html . »;
        } else {
        $media_content.= $media_html;
        }
        if ($media_display === ‘carousel’) {
        break;
        }
        }

        if ($media_display === ‘isotope’) {
        $media_content.= ‘

        ‘;
        }
        }

        /** Build title **/

        if ($show_title) {
        $title_content .= apply_filters( ‘uncode_before_body_title’, » );
        $title_content .= » . get_the_title() . »;
        $title_content .= uncode_post_info() . »;
        $title_content .= apply_filters( ‘uncode_after_body_title’, » );
        }

        /** Build content **/

        $the_content = get_the_content();
        if (has_shortcode($the_content, ‘vc_row’)) {
        $with_builder = true;
        }

        if (!$with_builder) {
        $the_content = apply_filters(‘the_content’, $the_content);
        $the_content = $title_content . $the_content;
        if ($media_content !== ») {
        $the_content = $media_content . $the_content;
        }
        } else {
        $get_content_appended = apply_filters(‘the_content’, »);
        if (!is_null($get_content_appended) && $get_content_appended !== ») {
        $the_content = $the_content . uncode_get_row_template($get_content_appended, $limit_width, $limit_content_width, $style, », false, true, ‘double’, $page_custom_width);
        }
        }

        $the_content .= wp_link_pages( array(
        ‘before’ => » . esc_html__( ‘Pages:’, ‘uncode’ ),
        ‘after’ => »,
        ‘link_before’ => ‘‘,
        ‘link_after’ => ‘
        ‘,
        ‘echo’ => 0
        ));

        /** Build tags **/

        $page_show_tags = (isset($metabox_data[‘_uncode_specific_tags’][0])) ? $metabox_data[‘_uncode_specific_tags’][0] : »;
        if ($page_show_tags === ») {
        $generic_show_tags = ot_get_option(‘_uncode_’ . $post_type . ‘_tags’);
        $show_tags = ($generic_show_tags === ‘off’) ? false : true;
        if ($show_tags) {
        $show_tags_align = ot_get_option(‘_uncode_’ . $post_type . ‘_tags_align’);
        }
        } else {
        $show_tags = ($page_show_tags === ‘off’) ? false : true;
        if ($show_tags) {
        $show_tags_align = (isset($metabox_data[‘_uncode_specific_tags_align’][0])) ? $metabox_data[‘_uncode_specific_tags_align’][0] : »;
        }
        }

        if ($show_tags) {
        $tag_ids = wp_get_post_tags( $post->ID, array( ‘fields’ => ‘ids’ ) );
        if ( $tag_ids ) {
        $args = array(
        ‘smallest’ => 11,
        ‘largest’ => 11,
        ‘unit’ => ‘px’,
        ‘include’ => $tag_ids,
        ‘taxonomy’ => ‘post_tag’,
        ‘echo’ => false,
        ‘number’ => 999,
        );

        $tag_cloud = » . wp_tag_cloud($args) . »;

        if (!$with_builder) {
        $the_content .= $tag_cloud;
        } else {
        $the_content .= uncode_get_row_template($tag_cloud, $limit_width, $limit_content_width, $style, », false, true, ‘double’, $page_custom_width);
        }
        }
        }

        /** JetPack related posts **/

        if ( shortcode_exists( ‘jetpack-related-posts’ ) ) {
        $related_content = do_shortcode(‘[jetpack-related-posts]’);
        if ($related_content !== ») {
        if (!$with_builder) {
        $the_content .= $related_content;
        } else {
        $the_content .= uncode_get_row_template($related_content, $limit_width, $limit_content_width, $style, », false, true, ‘double’, $page_custom_width);
        }
        }
        }

        /** Build post after block **/
        $content_after_body = »;
        $page_content_blocks_after = array(
        ‘above’ => ‘_pre’,
        ‘below’ => »
        );

        foreach ($page_content_blocks_after as $order => $pre) {

        $content_after_body_build = »;

        $page_content_block_after = (isset($metabox_data[‘_uncode_specific_content_block_after’ . $pre][0])) ? $metabox_data[‘_uncode_specific_content_block_after’ . $pre][0] : »;
        if ($page_content_block_after === ») {
        $generic_content_block_after = ot_get_option(‘_uncode_’ . $post_type . ‘_content_block_after’ . $pre);
        $content_block_after = $generic_content_block_after !== » ? $generic_content_block_after : false;
        } else {
        $content_block_after = $page_content_block_after !== ‘none’ ? $page_content_block_after : false;
        }

        if ($content_block_after !== false) {
        $content_block_after = apply_filters( ‘wpml_object_id’, $content_block_after, ‘post’ );
        $content_after_body_build = get_post_field(‘post_content’, $content_block_after);
        if (class_exists(‘Vc_Base’)) {
        $vc = new Vc_Base();
        $vc->addShortcodesCustomCss($content_block_after);
        }
        if (has_shortcode($content_after_body_build, ‘vc_row’)) {
        $content_after_body_build = » . $content_after_body_build . »;
        } else {
        $content_after_body_build = » . uncode_get_row_template($content_after_body_build, $limit_width, $limit_content_width, $style, », false, true, ‘double’, $page_custom_width) . »;
        }
        if (class_exists(‘RP4WP_Post_Link_Manager’)) {
        if ( is_array(RP4WP::get()->settings) ) {
        $automatic_linking_post_amount = RP4WP::get()->settings[ ‘general_’ . $post_type ]->get_option( ‘automatic_linking_post_amount’ );
        } else {
        $automatic_linking_post_amount = RP4WP::get()->settings->get_option( ‘automatic_linking_post_amount’ );
        }
        $uncode_related = new RP4WP_Post_Link_Manager();
        $related_posts = $uncode_related->get_children($post->ID,false);
        $related_posts_ids = array();
        foreach ($related_posts as $key => $value) {
        if (isset($value->ID)) {
        $related_posts_ids[] = $value->ID;
        }
        }
        $archive_query = »;
        $regex = ‘/\[uncode_index(.*?)\]/’;
        $regex_attr = ‘/(.*?)=\»(.*?)\»/’;
        preg_match_all($regex, $content_after_body_build, $matches, PREG_SET_ORDER);
        foreach ($matches as $key => $value) {
        $index_found = false;
        if (isset($value[1])) {
        preg_match_all($regex_attr, trim($value[1]), $matches_attr, PREG_SET_ORDER);
        foreach ($matches_attr as $key_attr => $value_attr) {
        switch (trim($value_attr[1])) {
        case ‘auto_query’:
        if ($value_attr[2] === ‘yes’) {
        $index_found = true;
        }
        break;
        case ‘loop’:
        $archive_query = $value_attr[2];
        break;
        }
        }
        }
        if ($index_found) {
        if ($archive_query === ») {
        $archive_query = ‘ loop=»size:10|by_id:’ . implode(‘,’, $related_posts_ids) .’|post_type:’ . $post->post_type . ‘»‘;
        } else {
        $parse_query = uncode_parse_loop_data($archive_query);
        $parse_query[‘by_id’] = implode(‘,’, $related_posts_ids);
        if (!isset($parse_query[‘order’])) {
        $parse_query[‘order’] = ‘none’;
        }
        $archive_query = ‘ loop=»‘ . uncode_unparse_loop_data($parse_query) . ‘»‘;
        }
        $value[1] = preg_replace(‘#\s(loop)=»([^»]+)»#’, $archive_query, $value[1], -1, $index_count);
        if ($index_count === 0) {
        $value[1] .= $archive_query;
        }
        $replacement = ‘[uncode_index’ . $value[1] . ‘]’;
        $content_after_body_build = str_replace($value[0], $replacement, $content_after_body_build);
        }
        }
        }
        }

        $content_after_body .= $content_after_body_build;

        }

        /** Build post footer **/

        $page_show_share = (isset($metabox_data[‘_uncode_specific_share’][0])) ? $metabox_data[‘_uncode_specific_share’][0] : »;
        if ($page_show_share === ») {
        $generic_show_share = ot_get_option(‘_uncode_’ . $post_type . ‘_share’);
        $show_share = ($generic_show_share === ‘off’) ? false : true;
        } else {
        $show_share = ($page_show_share === ‘off’) ? false : true;
        }

        if ($show_share) {
        $footer_content = ‘

        ‘;
        }

        $show_comments = ot_get_option(‘_uncode_’ . $post_type . ‘_comments’);

        if ((comments_open() || ‘0’ != get_comments_number()) && $show_comments === ‘on’) {
        $footer_content.= »;
        ob_start();
        comments_template();
        $footer_content.= ob_get_clean();
        $footer_content.= »;
        }

        if ($layout === ‘sidebar_right’ || $layout === ‘sidebar_left’) {

        /** Build structure with sidebar **/

        if ($sidebar_size === ») {
        $sidebar_size = 4;
        }
        $main_size = 12 – $sidebar_size;
        $expand_col = »;

        /** Collect paddings data **/

        $footer_classes = ‘ no-top-padding double-bottom-padding’;

        if ($sidebar_bg_color !== ») {
        if ($sidebar_fill === ‘on’) {
        $sidebar_inner_padding.= ‘ std-block-padding’;
        $sidebar_padding.= $sidebar_bg_color;
        $expand_col = ‘ unexpand’;
        if ($limit_content_width === ») {
        $row_classes.= ‘ no-h-padding col-no-gutter no-top-padding’;
        $footer_classes = ‘ std-block-padding no-top-padding’;
        if (!$with_builder) {
        $main_classes.= ‘ std-block-padding’;
        }
        } else {
        $row_classes.= ‘ no-top-padding’;
        if (!$with_builder) {
        $main_classes.= ‘ double-top-padding’;
        }
        }
        } else {
        $row_classes .= ‘ double-top-padding’;
        $row_classes .= ‘ double-bottom-padding’;
        $sidebar_inner_padding.= $sidebar_bg_color . ‘ single-block-padding’;
        }
        } else {
        if ($with_builder) {
        if ($limit_content_width === ») {
        $row_classes.= ‘ col-std-gutter no-top-padding’;
        if ($boxed !== ‘on’) {
        $row_classes .= ‘ no-h-padding’;
        }
        } else {
        $row_classes.= ‘ col-std-gutter no-top-padding’;
        }
        $sidebar_inner_padding.= ‘ double-top-padding’;
        }
        else {
        $row_classes.= ‘ col-std-gutter double-top-padding’;
        $main_classes.= ‘ double-bottom-padding’;
        }
        }

        $row_classes.= ‘ no-bottom-padding’;
        $sidebar_inner_padding.= ‘ double-bottom-padding’;

        /** Build sidebar **/

        $sidebar_content = «»;
        ob_start();
        if ($sidebar !== ») {
        dynamic_sidebar($sidebar);
        } else {
        dynamic_sidebar(1);
        }
        $sidebar_content = ob_get_clean();

        /** Create html with sidebar **/

        if ($footer_content !== ») {
        if ($limit_content_width === ») {
        $footer_content = uncode_get_row_template($footer_content, $limit_width, $limit_content_width, $style, », false, true, »);
        }
        $footer_content = » . $footer_content . »;
        }

        $the_content = » . $the_content . »;

        $main_content = ‘
        ‘ . $the_content . $content_after_body . $footer_content . ‘
        ‘;

        $the_content = ‘

        ‘ . (($layout === ‘sidebar_right’) ? $main_content : ») . ‘

        ‘ . $sidebar_content . ‘

        ‘ . (($layout === ‘sidebar_left’) ? $main_content : ») . ‘

        ‘;
        } else {

        /** Create html without sidebar **/
        if ($with_builder) {
        $the_content = » . $the_content . »;
        } else {
        $uncode_get_row_template = uncode_get_row_template($the_content, $limit_width, $limit_content_width, $style, », ‘double’, true, ‘double’);
        if ( $uncode_get_row_template != » ) {
        $the_content = » . $uncode_get_row_template . »;
        }
        }
        $the_content .= $content_after_body;
        $uncode_get_row_template = uncode_get_row_template($footer_content, $limit_width, $limit_content_width, $style, », false, true, ‘double’, $page_custom_width);
        if ( $uncode_get_row_template != » ) {
        $the_content .= » . $uncode_get_row_template . »;
        }
        }

        /** Build and display navigation html **/
        $navigation_option = ot_get_option(‘_uncode_’ . $post_type . ‘_navigation_activate’);
        if ($navigation_option !== ‘off’) {
        $generic_index = true;
        if (isset($metabox_data[‘_uncode_specific_navigation_index’][0]) && $metabox_data[‘_uncode_specific_navigation_index’][0] !== ») {
        $navigation_index = $metabox_data[‘_uncode_specific_navigation_index’][0];
        $generic_index = false;
        } else {
        $navigation_index = ot_get_option(‘_uncode_’ . $post_type . ‘_navigation_index’);
        }
        if ($navigation_index !== ») {
        $navigation_index_label = ot_get_option(‘_uncode_’ . $post_type . ‘_navigation_index_label’);
        $navigation_index_link = get_permalink($navigation_index);
        $navigation_index_btn = ‘‘ . ($navigation_index_label === » ? get_the_title($navigation_index) : esc_html($navigation_index_label)) . ‘‘;
        } else {
        $navigation_index_btn = »;
        }
        $navigation_nextprev_title = ot_get_option(‘_uncode_’ . $post_type . ‘_navigation_nextprev_title’);
        $navigation = uncode_post_navigation($navigation_index_btn, $navigation_nextprev_title, $navigation_index, $generic_index);
        if ($page_custom_width !== ») {
        $limit_content_width = ‘ limit-width’;
        }
        if (!empty($navigation) && $navigation !== ») {
        $navigation_content = uncode_get_row_template($navigation, », $limit_content_width, $style, ‘ row-navigation row-navigation-‘ . $style, true, true, true);
        }
        }

        /** Display post html **/
        echo ‘

        ‘ . uncode_remove_p_tag($the_content) . » .
        $navigation_content . ‘

        ‘;

        endwhile;
        // end of the loop.

        get_footer(); ?>

×

Responder al comentario de skotperez

*
*

 

Un trackback