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.....