Falta la imagen y es necesaria: la estructura AMP de WordPress no agrega el atributo de imagen

4 minutos de lectura

Falta la imagen y es necesaria la estructura AMP de
Idan Shechter

Al validar mis publicaciones de wordpress con la herramienta de prueba de datos estructurados de Google, aparece el siguiente error:

"Image: missing and required"

Tengo instalado el complemento oficial de wordpress AMP que generó las páginas AMP para mí. El problema es que no populariza el atributo “imagen” para BlogPosting.

En el complemento hay un código que creo que debería generarlo, pero no se ejecuta en ninguna parte:

private function get_post_image_metadata() {
    $post_image_meta = null;
    $post_image_id = false;

    if ( has_post_thumbnail( $this->ID ) ) {
        $post_image_id = get_post_thumbnail_id( $this->ID );
    } else {
        $attached_image_ids = get_posts( array(
            'post_parent' => $this->ID,
            'post_type' => 'attachment',
            'post_mime_type' => 'image',
            'posts_per_page' => 1,
            'orderby' => 'menu_order',
            'order' => 'ASC',
            'fields' => 'ids',
            'suppress_filters' => false,
        ) );

        if ( ! empty( $attached_image_ids ) ) {
            $post_image_id = array_shift( $attached_image_ids );
        }
    }

    if ( ! $post_image_id ) {
        return false;
    }

    $post_image_src = wp_get_attachment_image_src( $post_image_id, 'full' );

    if ( is_array( $post_image_src ) ) {
        $post_image_meta = array(
            '@type' => 'ImageObject',
            'url' => $post_image_src[0],
            'width' => $post_image_src[1],
            'height' => $post_image_src[2],
        );
    }

    return $post_image_meta;
}

¿Cómo puedo completar la etiqueta de imagen para cada publicación usando este complemento AMP de WordPress? Quiero que la página pase la herramienta de prueba de datos estructurados, para que también pueda pasar la validación de AMP.

Actualizar: la razón por la que la imagen no se muestra es porque no hay una imagen incrustada en la publicación. ¿Hay alguna manera de poner una imagen predeterminada en caso de que no haya una, de modo que pase la validación de AMP/Schema?

1647550087 35 Falta la imagen y es necesaria la estructura AMP de
unor

Por ajustarse a la Especificación HTML de AMPno es necesario que utilice los datos estructurados de Schema.org.

Si el SDTT de Google dice que una propiedad “falta y es necesaria”, no significa que AMP o Schema.org la requieran. Solo significa que Google no mostrará una de sus funciones de resultados de búsqueda de Google (como Rich Snippets) para su página.

Por ejemplo, está el Historias destacadas con AMP característica: un carrusel que enlaza con páginas AMP y muestra una imagen de cada página. Por eso Google requiere el esquema.org image propiedad para esta función (para artículos). Pero está perfectamente bien no proporcionar una imagen para su artículo, lo único que “sucede” es que su página no tiene la oportunidad de aparecer en ese carrusel de Historias destacadas.

Por supuesto, podría poblar $post_image_meta con una imagen predeterminada (por ejemplo, un marcador de posición) si is_array( $post_image_src ) es falso, pero es muy probable que no sea una buena idea: la imagen no sería relevante, por lo que los usuarios que buscan en la Búsqueda de Google no la encontrarían útil, por lo que la Búsqueda de Google tendría interés en no mostrar su resultado a sus usuarios. (Pero si ese es realmente el caso y de qué manera es un problema de SEO, que pertenece a Webmasters SE.)

  • Estoy de acuerdo en que no es prudente agregar una imagen predeterminada. Lo dejaré así. ¡Gracias!

    –Idan Shechter

    29 de febrero de 2016 a las 23:21

  • Buena respuesta verdadera. Todavía estoy debatiendo si agregar una imagen predeterminada o no. Realmente desearía que Google especificara esto en sus guías de AMP, ya que las Herramientas para webmasters seguirán tratando estas imágenes faltantes como “problemas” del tipo “Información: elemento de datos estructurados no válido” para siempre, obstruyendo mi revisión de los errores reales en ese espacio. Frustrante para las publicaciones antiguas (que nunca volveré y corregiré) y las publicaciones nuevas sin ninguna imagen significativa.

    – chaleco

    4 oct 2016 a las 18:59

  • Actualización: me respondieron en su GitHub y lo que pretenden es NO HAY IMÁGENES PREDETERMINADAS: “La mejor pauta aquí es la cita que incluyeste de los documentos, para usar solo una imagen que pertenece directamente al artículo. Como mencionas, queremos evitar la mala experiencia del usuario de obtener imágenes poco informativas”. github.com/ampproject/amphtml/issues/…

    – chaleco

    7 oct 2016 a las 21:48

Imagen predeterminada para publicaciones antiguas sin imágenes

add_filter( 'amp_post_template_metadata', 'bbm_amp_modify_json_metadata', 10, 2 );
function bbm_amp_modify_json_metadata( $metadata, $post ) {
    if (!array_key_exists('image', $metadata)) {
    $metadata['image'] = array(
            '@type' => 'ImageObject',
            'url' => get_template_directory_uri() . '/images/default.png',
            'height' => 512,
            'width' => 1024,
        );
    }
    return $metadata;
}

Desde Compatibilidad con complementos de amplificador. Lo he comprobado y funciona. Las imágenes deben ser al menos 696 píxeles de ancho.

  • Técnicamente, esto viola las pautas de AMP que exigen que la ‘imagen’ esté directamente relacionada con la publicación. Ver comentario en otra respuesta.

    – chaleco

    7 oct 2016 a las 21:49

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad