Tengo un metabox que crea una matriz de datos no escalar, que WP serializa de forma predeterminada.
Recuerde que la matriz es multidimensional, con dos niveles.
En la interfaz, recupero los datos (valores de la matriz) con get_post_meta ($ARRAYNAME), que deserializa automáticamente la matriz.
$test = get_post_meta( $post->ID, 'productdata_group', true );
Luego extraigo los valores de las claves específicas, por ejemplo manualmente:
$subtest = $test[1]['article']; etcétera
Mientras que en funciones.php, en la función de estructura que hace referencia a add_meta_box() que crea el metabox para la página de administración, el método es:
if ( $array ) : foreach ( $products_array as $field ) etcétera, entonces, llamando, por ejemplo, $field['article']; Obtengo la lista de valores para la clave ‘artículo’.
El metabox es una tabla donde cada fila es una entrada, así que llamo, por ejemplo:
etcetera.
Cuando llamo a los datos individualmente (fuera de la tabla), por ejemplo con:$test = esc_attr( $field['article'] );
Solo obtengo una lista secuencial de todos los valores a los que hace referencia esa clave, pero me gustaría llamarlos específicamente caso por caso:
Es un eco escribir un par de líneas CSS para ponerlas como contenido: después, llamar a la variable para cada valor. En este CSS $test repetido debería llamar a todos los valores en las distintas filas, pero en cambio solo me da el valor de la última fila.
Ya utilicé con éxito este método (el CSS en línea para meta_datos únicos, simplemente llamándolos con get_meta_box() ) pero en este caso es más complicado.
Espero haberme explicado claramente.
Probé el bucle foreach, el bucle for, array_column, get_metadata(), wp_get_attachment(),… nada.
¿Alguna sugerencia? Gracias de antemano.