¿Recorre ACF para mostrar todos los valores de campo posibles?

2 minutos de lectura

avatar de usuario
EHerman

Estoy creando un sitio que utiliza isótopos para filtrar publicaciones en una página.

Estoy usando campos personalizados avanzados (http://www.advancedcustomfields.com/) y he creado una sección donde el usuario puede establecer un campo para ‘Dificultad del proyecto’.

Estoy tratando de recorrer todas las selecciones posibles para crear una lista de enlaces en los que un usuario puede hacer clic para ordenar (usando isótopo). Tengo esto funcionando correctamente usando ‘etiquetas’, pero no quiero etiquetar cada proyecto con el nivel de dificultad, quiero que el usuario lo seleccione al crear la publicación en un menú desplegable de ACF.

Para obtener y mostrar con éxito una lista de etiquetas en forma de enlaces, he usado este código:

<?php
$tags = get_tags();
  $html="<div class="post_tags">";
  foreach ( $tags as $tag ) {
  $tag_link = get_tag_link( $tag->term_id );

  $html .= "<a data-filter=.{$tag->name} title="{$tag->name} Tag" class="{$tag->slug}">";
  $html .= "{$tag->name}</a>";
}
$html .= '</div>';
echo $html; 
?>

Ahora he intentado modificar eso para que funcione con ACF usando un código como este:

  <?php
   $fields = get_fields();
   $html="<div class="post_tags">";
  foreach ( $fields as $field ) {
     $tag_link = get_fields( $field->task_difficulty );

    $html .= "<a data-filter=.{$field->name} title="{$field->name} Tag" class="{$field->slug}">";
    $html .= "{$field->name}</a>";
  }
   $html .= '</div>';
   echo $html;
  ?>

Pero lo que está dando salida es:

<a data-filter="." title=" Tag" class=""></a>

y no está agregando ninguno de los datos correctos. Es evidente que algunos de mis valores están fuera de lugar. ¿Cómo puedo recorrer las posibles opciones y agregarlas como un enlace como lo hice con las etiquetas?

Gracias

  • Agregar var_dump( $fields ); despues de ti $fields = get_fields(); línea. Qué hace su $fields valor parece?

    – Pat J.

    5 de diciembre de 2013 a las 16:08

Cualquier otra persona que tenga dificultades con esto, resolví el problema haciendo lo siguiente:

        // must add field key of the field you want
        $field_key = "field_52a087a80a4c6";
        $field = get_field_object($field_key);

        if( $field )
        {
            echo '<div class="acf-task-difficulty-values">';
                foreach( $field['choices'] as $k => $v )
                {
                    echo '<a data-filter=.'.$k.' onclick="return false;">' . $v . '</a>';
                }
            echo '</div>';
        }

Luego puede diseñarlo en su archivo CSS.

  • ¡Ayudó mucho! Para mostrar la clave de campo, debe hacer clic en la pestaña “Configuración de pantalla” (o como se llame, en la parte superior derecha) mientras está en ACF y lo verá como última opción.

    – Dmitrii Malyshev

    9 de abril de 2015 a las 7:12

¿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