Agregando una imagen del esquema para insertarla en the_post_thumbnail con filtros

2

He intentado aplicar filtros a la función_post_thumbnail () usando

apply_filters( 'post_thumbnail_html', $html, $post_id, $post_thumbnail_id, $size, $attr );

Aquí está el código que se me ocurrió pero que no parece funcionar completamente

    function red_adjust_image_schema($html, $id, $caption, $title, $align, $url, $size, $alt) 
{
    $html = '<div class="image-container" itemprop="image">'. $html . '</div>';

    return $html;
}
add_filter('post_thumbnail_html', 'red_adjust_image_schema', 20, 8);

¿Cómo puedo agregar itemprop="imagen" al elemento de imagen real para que se registre correctamente? En este momento, parece que solo puedo hacer un contenedor y envolver alrededor de $ html?

Gracias

    
pregunta Ryan Dennler 18.12.2012 - 20:33

2 respuestas

3

Simplemente tiene los argumentos incorrectos (incluida la lista de ellos).

$caption, $title, $align, $url, $alt

hay demasiados allí.

Y $attr falta. No es que importe cómo nombras las vars (siempre que empiecen con un personaje), pero es más fácil de leer para los lectores posteriores.

function wpse76536_image_schema( $html, $post_id, $post_thumbnail_id, $size, $attr ) 
{
    return "<div class='image-container' itemprop='image'>{$html}</div>";
}
add_filter( 'post_thumbnail_html', 'wpse76536_image_schema', 10, 5 );
    
respondido por el kaiser 19.12.2012 - 01:12
2

Puedes agregar un nuevo atributo:

add_filter('wp_get_attachment_image_attributes', 'ipwp_img_attr', 10, 2);
    function ipwp_img_attr($attr) {
    $attr['itemprop'] = 'image';
    return $attr;
}

De esta manera solo habrá un nuevo atributo, sin la necesidad de buscar y reemplazar ningún código - Ver mi versión anterior:

add_filter('post_thumbnail_html','mediaboxlv_image_itemprop',10,3 );
function mediaboxlv_image_itemprop($html, $post_id, $post_image_id){
    $html = str_replace('src',' itemprop="image" src',$html);
    return $html;
}
    
respondido por el Rolands Umbrovskis 18.02.2013 - 09:26

Lea otras preguntas en las etiquetas