Я пытаюсь использовать get_post_meta и настраиваемое поле для заполнения JSON-ld. Примечание * информация в JSON предназначена только для тестирования.
Имя настраиваемого поля: схема
Значение пользовательского поля:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "LocalBusiness",
"address": {
"@type": "PostalAddress",
"addressLocality": "Example Town",
"addressRegion": "Essex",
"streetAddress": "123 Example Street"},
"description": "A super shop that sells everything at super low prices.",
"name": "Super Shop",
"telephone": "01234567890"}
</script>
PHP get_post_meta:
?><!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js no-svg">
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<?php wp_head(); ?>
<?php
global $post;
$schema = get_post_meta($post->ID, 'schema', true);
if(!empty($schema)) {
echo $schema;
}
?>
</head>
Я вставляю PHP в темы header.php файл перед закрытием </head>
тег.
Обновление, очистка кеша, обновление, ничего не происходит. Любые идеи о том, что я делаю не так здесь?
Поскольку я не вижу весь ваш код, я собираюсь предположить, что вы не находитесь в цикле WordPress, и проблема в том, что get_the_ID () возвращает только идентификатор сообщения текущего элемента в цикле WordPress. Ссылка на текущую страницу / сообщение, используя следующие.
global $post;
$schema = get_post_meta($post->ID, 'schema', true);
Других решений пока нет …