Array als value in input text field
Ik ben bezig met een repeatable field voor wordpress te maken om zo met een knop een input te kunnen dupliceren.
Nu lukt dit al niet helemaal, maar ben wat aan het uittesten.
Ik heb de volgende code nu:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
foreach ($custom_meta_fields as $field) {
// Get value of this field if it exists for this post
$meta = get_post_meta($post->ID, $field['id'], true);
echo '<td>';
switch ($field['type']) {
// Repeatable
case 'repeatable':
$field_titles = wp_list_pluck( $custom_meta_fields, 'label' );
$field_titles = array_filter( $field_titles ); // remove empty values
$i = 0; // Variable for repeater
if ( $meta == '' || $meta == array() ) {
$keys = wp_list_pluck( $custom_meta_fields, 'id' );
$meta = array ( array_fill_keys( $keys, null ) );
} // End if
$meta = array_values( $meta );
foreach( $meta as $row ) {
foreach ( $custom_meta_fields as $field ) {
extract( $field );
switch ($field['type']) {
// Text
case 'text':
echo '<input type="text" name="' . $field['id'] . '[' .$i. ']' . '" id="' . $field['id'] . '" value="' . $meta[$i] . '" size="30" />';
break;
} // End switch statement
} // End foreach
$i++;
} // End foreach meta as row
break;
} // End switch statement
echo '</td>';
} // End foreach loop
// Get value of this field if it exists for this post
$meta = get_post_meta($post->ID, $field['id'], true);
echo '<td>';
switch ($field['type']) {
// Repeatable
case 'repeatable':
$field_titles = wp_list_pluck( $custom_meta_fields, 'label' );
$field_titles = array_filter( $field_titles ); // remove empty values
$i = 0; // Variable for repeater
if ( $meta == '' || $meta == array() ) {
$keys = wp_list_pluck( $custom_meta_fields, 'id' );
$meta = array ( array_fill_keys( $keys, null ) );
} // End if
$meta = array_values( $meta );
foreach( $meta as $row ) {
foreach ( $custom_meta_fields as $field ) {
extract( $field );
switch ($field['type']) {
// Text
case 'text':
echo '<input type="text" name="' . $field['id'] . '[' .$i. ']' . '" id="' . $field['id'] . '" value="' . $meta[$i] . '" size="30" />';
break;
} // End switch statement
} // End foreach
$i++;
} // End foreach meta as row
break;
} // End switch statement
echo '</td>';
} // End foreach loop
Wat er nu gebeurt is, dat de value van het input field text "Array" is. Waar dit aan kan liggen, kan ik niet achterhalen.
Hopelijk kan iemand mij helpen.
Alvast bedankt.
Casper
doe ook eens een var_dump($meta) en post die