How to write PHP array to render JSON-LD Markup for Job Postings, with ACF
i want to add a dynamic JSON-LD (schema.org) for career posts in my wordpress page. I tried this code below. But i think i have some Syntax errors within the array. Maybe the echo is not allowed within the array? I hope somebody can help me with this?
?php function schema() {?
?php if( have_rows('schema_auszeichnung') ): ?
?php while( have_rows('schema_auszeichnung') ): the_row();
// Get sub field values.
$title = get_sub_field('title');
$description = get_sub_field('description');
$state = get_sub_field('state');
$date = get_sub_field('date');
$street = get_sub_field('street');
$city = get_sub_field('city');
$postalcode = get_sub_field('postalcode');
$schema = array(
'@context' = 'http://schema.org',
'@type' = 'JobPosting',
'title' = $title,
'description' = $description,
'hiringOrganization' = array(
'@type' = 'Organization',
'name' = 'cent GmbH',
'sameAs' = get_home_url(),
'logo' = '/wp/wp-content/uploads/2016/11/cropped-logo.png'
),
'employmentType'= $state,
'datePosted' = $date,
'validThrough' = ,
'jobLocation' = array(
'@type' = Place,
'address' = array (
'@type' = 'PostalAddress',
'streetAddress' = $street,
'adressLocality' = $city,
'postalCode' = $postalcode,
'addressCountry' = 'DE'
),
),
);
?
?php endwhile; ?
?php endif; ?
?php
echo 'script type=application/ld+json' . json_encode($schema) . '/script';
}
add_action('wp_head', 'schema');
?
EDIT:
After removing the 'echo' i got the php warning: Undefined variable: schema. But for me it is defined in this line: $schema = array.....
Topic advanced-custom-fields array json Wordpress
Category Web