Soporte » WordPress Avanzado » Marcado Schema preptime + cooktime

  • Resuelto dulcesdiabeticos

    (@dulcesdiabeticos)


    ¡Hola!

    Estoy intentando meter propiedades de Schema Recipe en mi single-post (recetas) para que salgan siempre, pero no me sale, con el tema de los tiempos de preparación.

    Le pongo las propiedades de “cookTime”y “prepTime”, pero al validar me dice que el formato de tiempo no es correcto: “20 Minutos (No se entiende el valor 20 Minutos como fecha/hora. Más información sobre los formatos de fecha y hora.)”

    Entiendo los formatos correctos (en este caso sería PT20M), pero no sé cómo implementar el código en el php para que salga así.

    El código que quiero modificar es éste:
    <div class=”col-md-8″>
    Preparación
    <p itemprop=”prepTime” class=”detail-info”><?php the_field(‘tiempo_de_preparacion’); ?> Minutos</p>
    </div>
    </div><div class=”col-md-3 col-sm-3 col-xs-6 recipe-detail-component”>
    <div class=”col-md-4″>
    recipe detail
    </div>
    <div class=”col-md-8″>
    Cocción
    <p itemprop=”cookTime” class=”detail-info”><?php the_field(‘tiempo_de_coccion’); ?> Minutos</p>
    </div>

    ¿Cómo podría hacerlo? Muchas gracias!

Viendo 10 respuestas - 1 de 10 (de 10 total)
  • oldlastman

    (@oldlastman)

    en schema.org el ejemplo es:

    Prep Time: <meta itemprop="prepTime" content="PT15M">15 minutes
      Cook time: <meta itemprop="cookTime" content="PT1H">1 hour

    así que para lo que propones lo mejor sería

    <div class=”col-md-8″>
    Preparación
    <p class=”detail-info”><?php the_field(‘tiempo_de_preparacion’); ?> Minutos</p>
    <meta itemprop="prepTime" content="PT<?php the_field(‘tiempo_de_preparacion’); ?>M">
    </div>
    </div><div class=”col-md-3 col-sm-3 col-xs-6 recipe-detail-component”>
    <div class=”col-md-4″>
    recipe detail
    </div>
    <div class=”col-md-8″>
    Cocción
    <p itemprop=”cookTime” class=”detail-info”><?php the_field(‘tiempo_de_coccion’); ?> Minutos</p>
    <meta itemprop="cookTime" content="PT<?php the_field(‘tiempo_de_coccion’); ?>M">
    </div>

    Ojo, está puesto para minutos “fijos” Así que si lo haces indicando 1hora .. pues el código no tira bien

    un saludo

    ¡Hola! Gracias por responder. He sustituido el código por ese que dices, y no ha funcionado, me ha dado error al mostrar los tiempos en la web.

    Siempre uso minutos, no horas, así que por ahí no habría problema.

    Moderador LGrusin

    (@lgrusin)

    La verdad es que no entiendo lo que quieres hacer, ¿no puedes poner el dato como texto en vez de fecha?.

    Un saludo

    El dato ya se pone como texto, al introducir en cada post el tiempo de cocinado (mediante un custom field). La cosa es que quiero editar el código del single-post para que en cada entrada se asignen los microdatos que digo (prepTime, CookTime) a los campos correspondientes.

    Moderador LGrusin

    (@lgrusin)

    Me estoy perdiendo, si pones en el custom field PT20M:
    <meta itemprop="prepTime" content="<?php the_field('tiempo_de_preparacion');">
    el resultado es:
    <meta itemprop="prepTime" content="PT20M">

    Lo mismo para el cookTime.

    Ese tiempo con ese formato no lo podrás mostrar tal como está. En todo caso:
    Tiempo de preparado: <meta itemprop="prepTime" content="<?php the_field('tiempo_de_preparacion');">20 minutos

    Un saludo

    • Esta respuesta fue modificada hace 3 meses, 3 semanas por  LGrusin.
    • Esta respuesta fue modificada hace 3 meses, 3 semanas por  LGrusin.
    • Esta respuesta fue modificada hace 3 meses, 3 semanas por  LGrusin.
    • Esta respuesta fue modificada hace 3 meses, 3 semanas por  LGrusin.
    dulcesdiabeticos

    (@dulcesdiabeticos)

    Pero no lo pongo en el custom field, el código lo añado al single-post.php para que se coja en todas las entradas. ¿Quieres decir que tendría que ponerlo en el código de los custom fields?

    Moderador LGrusin

    (@lgrusin)

    Es que cada entrada tendrá valores diferentes. Los minutos los escribes directamente en la entrada pero el formato PT20M (o el que sea) necesitas pasarselo de alguna manera, de ahí lo del custom field. De todas formas es lo que habías puesto en el código inicial.

    Por eso @oldlastman te puso un código para que sólo pusieras en el custom field el valor numérico de los minutos. Ejemplo, PT20M, sólo pones en el custom field 20, lo demás lo rellena el código.

    Si pruebas ese código recuerda poner bien las comillas, no son esas que salen.

    Un saludo

    • Esta respuesta fue modificada hace 3 meses por  LGrusin.
    oldlastman

    (@oldlastman)

    exacto @lgrusin las comillas están mal
    tan solo copié y pegué el código propuesto por @dulcesdiabéticos
    pero al estar fuera de una etiqueta code la cosa estaba regular y seguro que lo haría fallar

    he sustituido todas las comillas por las correctas

    <div class="col-md-8">
    Preparación
    <p class="detail-info"><?php the_field('tiempo_de_preparacion'); ?> Minutos</p>
    <meta itemprop="prepTime" content="PT<?php the_field('tiempo_de_preparacion'); ?>M">
    </div>
    </div><div class="col-md-3 col-sm-3 col-xs-6 recipe-detail-component">
    <div class="col-md-4">
    <img src="http://dulcesdiabeticos.com/wp-content/themes/cakeart//images/admin/recipe-detail/cook-time.png" alt="recipe detail">
    </div>
    <div class="col-md-8">
    Cocción
    <p itemprop="cookTime" class="detail-info"><?php the_field('tiempo_de_coccion'); ?> Minutos</p>
    <meta itemprop="cookTime" content="PT<?php the_field('tiempo_de_coccion'); ?>M">
    </div>

    de todas formas @dulcesdiabeticos asegúrate de que están bien.
    y por favor si algo no te funciona no digas solamente “falla” muestra el fallo … así es mas sencillo saber porqué falla

    un saludo

    • Esta respuesta fue modificada hace 3 meses por  oldlastman.
    dulcesdiabeticos

    (@dulcesdiabeticos)

    Hola de nuevo! He probado este último código, y ya funciona perfecto! Muchas gracias 🙂

    En la herramienta de validación de código Schema de Google aparece duplicado el cookTime, uno bien (PT) y el otro “mal” (minutos), ¿sabéis a qué se debe esto?

    ¿Hay manera de poner el autor y la descripción (nutrida de la metadescripción) también en el mismo archivo, o sería mucho rollo?

    Mil gracias por todo

    dulcesdiabeticos

    (@dulcesdiabeticos)

    Vale, acabo de ver que el itemprop estaba duplicado en cocción:

    <div class="col-md-8">
    Cocción
    <p itemprop="cookTime" class="detail-info"><?php the_field('tiempo_de_coccion'); ?> Minutos</p>
    <meta itemprop="cookTime" content="PT<?php the_field('tiempo_de_coccion'); ?>M">
    </div>

    Lo he quitado y ya está ok! 🙂

Viendo 10 respuestas - 1 de 10 (de 10 total)
  • Debes estar registrado para responder a este tema.