Pregunta sobre AMP for WP - Accelerated Mobile Pages de Wordpress:

ACF para AMP: la imagen no se convierte en etiquetas de amplificador

Un usuario preguntó 👇

Tengo un problema con las imágenes de Google que indican que la etiqueta «img» no se muestra correctamente. Debe ser «amp-img». Entonces revisé todo y hay un lugar donde no hay imágenes en la etiqueta «amp-img». Este lugar es get_sub_field …

Si utilizo un repetidor, las imágenes de TextEditor no se muestran correctamente. Mire la imagen de mi página en contenido y verá.

Aquí está mi ACF para sitios AMP:


<?php
    ini_set("highlight.comment", "#abb2bf");
    ini_set("highlight.default", "#61aeee");
    ini_set("highlight.html", "#ffffff");
    ini_set("highlight.keyword", "#c678dd");
    ini_set("highlight.string", "#98c379");
?>
<div class="amp-wp-article-content content-acf">
    <div class="amp-wp-content the_content">
        <?php
            if (have_rows('content')) :
                while(have_rows('content')) : the_row();
        ?>
            <?php if (get_row_layout() !== 'newsletter') : ?>
            <div class="amp-section-acf">
                <?php if (get_row_layout() === 'text') : ?>
                    <?= get_sub_field('text') ?>
                <?php elseif (get_row_layout() === 'image-wide' || get_row_layout() === 'image-narrow') : ?>
                    <amp-img src="<?= wp_get_attachment_image_url(get_sub_field('image'), 'blog-post-details') ?>" alt="<?= get_sub_field('caption') ?>" width="<?= wp_get_attachment_metadata(get_sub_field('image'))['sizes']['blog-post-details']['width'] ?>" height="<?= wp_get_attachment_metadata(get_sub_field('image'))['sizes']['blog-post-details']['height'] ?>" layout="responsive"></amp-img>
                    <?php if (get_sub_field('caption')) : ?>
                        <p class="text-right"><i><?= get_sub_field('caption') ?></i></p>
                    <?php endif; ?>
                <?php elseif (get_row_layout() === 'video') : ?>
                    <?= get_sub_field('video') ?>
                <?php elseif (get_row_layout() === 'quote') : ?>
                    <blockquote>
                        <?= get_sub_field('quote_text') ?>
                        <?php if (get_sub_field('quote_author')) : ?>
                            <p class="text-right"><i><?= get_sub_field('quote_author') ?></i></p>
                        <?php endif; ?>
                    </blockquote>
                <?php elseif (get_row_layout() === 'code') : ?>
                    <pre data-lang="<?= get_sub_field('language') ?>"><?php highlight_string(get_sub_field('code')) ?></pre>
                <?php elseif (get_row_layout() === 'infobox') : ?>
                    <div class="infobox"><?= get_sub_field('text') ?></div>
                <?php elseif (get_row_layout() === 'cta-block') : ?>
                    <div class="cta-box">
                        <?= get_sub_field('text') ?>
                        <?php if ($button = get_sub_field('button')) : ?>
                            <div class="cta-button">
                              <a href="<?= $button['url'] ?>"
                                 target="<?= $button['target'] ?>">
                                <?= $button['title']?>
                              </a>
                            </div>
                        <?php endif; ?>
                    </div>
                <?php endif; ?>
            </div>
            <?php endif; ?>
        <?php
                endwhile;
            endif;
        ?>
    </div>
</div>

Como puede ver, hay una línea con: get_sub_field('text') y este no encaja en mi etiqueta AMP «amp-img».

¿Puedes ayudarme por favor?

(@ampforwp)

Hace 2 años

Hola @matpeczkowski,

Estoy compartiendo el código para convertir la etiqueta img en una etiqueta amp-img. Aplique esto a su extremo donde el get_sub_field('text') y compruebe si el problema está resuelto o no.

 $text_sanitize = get_sub_field('text');
 $sanitizer = new AMPFORWP_Content( $text_sanitize, array(), apply_filters( 'ampforwp_content_sanitizers', array( 'AMP_Img_Sanitizer' => array(),
					                      'AMP_Video_Sanitizer' => array() ) ) );
 $sanitized_content = $sanitizer->get_amp_content();
 echo $sanitized_content;

Espero que ayude.

Gracias

Lanzador de hilos

(@matpeczkowski)

Hace 2 años

Hola @ampforwp,

Muchas gracias por su respuesta.

Tu solución funciona y me ayudó con mi problema 🙂

Todo lo mejor, Mateusz

(@ampforwp)

Hace 2 años

Hola @matpeczkowski,

Me alegro de que lo hayas solucionado.

Si le gusta el plugin, por favor apóyenos dejando sus comentarios en https://wordpress.org/support/plugin/accelerated-mobile-pages/reviews/

Mi equipo y yo lo entenderemos mucho.

Gracias

(@ rajeshkumawat78)

Hace 1 año, 9 meses

Hola @ampforwp

He usado ACF para el plugin AMP y tengo una edición del editor PHP en el panel de administración de ACF AMP Posttype. Estoy usando el campo Editor PHP y lo instalé amp-img Etiqueta para la imagen pero es un cambio automático img etiqueta después de guardar.

Revisé este problema mucho tiempo, pero es una etiqueta de imagen que no es de AMP y que cambia automáticamente. Compruébelo por favor. Y por favor, respóndeme lo antes posible.

Usé una etiqueta después de guardar la etiqueta de cambio automático. Consulte la URL de la captura de pantalla para una mejor comprensión. http://i.imgur.com/7p6eXdr.png

Gracias

Esta respuesta fue modificada hace 1 año, 9 meses.

(@devmitrovics)

Hace 1 año, 4 meses

Hola, tengo la misma pregunta. Diseño flexible con el editor WSYWIG al convertir la etiqueta img a amp-img. Probé el código text_sanitize pero me dio un error interno del servidor.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *