我想為我的wordpress頁面中的职業职位添加動態JSON-LD(schema.org).我在下面尝試了此代碼.但是我想我在陣列中有一些語法錯誤.也许陣列中不允许使用" echo"? 我希望有人可以帮助我吗?
<?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');
?>
編輯:
删除" echo"後,我得到了php警告:未定義變數:模式.但是對我来說,它是在以下行中定義的:$ schema = array .....
最新回復
- 11月前1 #
這似乎更像是一个PHP程式設計問题,但是是的,正如您在PHP中所猜測的,如果您想要a的值 您只需要
$var
的變數 .威兹威兹 輸出它,並会在使用時引起語法錯誤。否則,其他一切看起来都很好,尽管顯然我不能說该資料結構是否可以為您提供有效的JSON-LD;-)
編輯:最好给函式起一个比
echo $var
更独特的名稱 .你可以稱它為'schema'
之類的东西,以使其更加独特,並且不太可能与wordpress中的其他任何名稱冲突EDIT2:要解決您添加到問题中的額外錯誤,請定義
'yourname_jsonld_schema'
在內部是一个$schema
語句,這意味着如果以後不定義變數,則表示if
不是真的.所以你需要做一些類似的事情来弄清楚為什麼if
是錯誤的,或者如果正確,請將其放在您使用if
的地方 在$schema
內 也是。if