WordPressの投稿をJSON-LD(scheme.org)で出力してみる。

JSON-LD(JSON-Linked Data)という言語をご存知でしょうか?ざっくりまとめると、「schema.orgに準拠した、より複雑なデータを渡せるJSON」のようなものです。今回はこれをWordPressのsingle.phpに追加するコードを簡単に作ってみました。

広告ここから
広告ここまで

目次

    microdataはマークアップの影響を受けやすい。

    WordPressの場合、テーマをガッツリカスタマイズする必要があって大変。

    そんな時はJSON-LD。

    JSON-LDは、head内に以下の様な記述をすることでschema.orgの構造化データを設定できるというものです。

    [html]
    <script type="application/ld+json">
    {
    "@context": "https://schema.org",
    "@type": "Person",
    "name": "John Doe",
    "jobTitle": "Graduate research assistant",
    "affiliation": "University of Dreams",
    "additionalName": "Johnny",
    "url": "https://www.example.com",
    "address": {
    "@type": "PostalAddress",
    "streetAddress": "1234 Peach Drive",
    "addressLocality": "Wonderland",
    "addressRegion": "Georgia"
    }
    }
    </script>
    [/html]
    引用元:JSON-LD – Google Schemas — Google Developers

    投稿データさえ取り出すことができれば、簡単に構造化データをWordPressサイトに実装させることができます。そう、JSON-LDならね。

    というわけで実装コード。

    [php]
    add_action(‘wp_head’,’insert_json_ld’);
    function insert_json_ld (){
    if (is_page() || is_single()) {
    if (have_posts()) : while (have_posts()) : the_post();
    $context = ‘https://schema.org’;
    $type = ‘Article’;
    $name = get_the_title();
    $authorType = ‘Person’;
    $authorName = get_the_author();
    $dataPublished = get_the_date(‘Y-n-j’);
    $image = the_post_thumbnail();
    $articleSection = get_the_excerpt();
    $articleBody = get_the_content();
    $url = get_permalink();
    $publisherType = ‘Organization’;
    $publisherName = get_bloginfo(‘name’);

    $json= "’@context’ : ‘{$context}’,
    ‘@type’ : ‘{$type}’,
    ‘name’ : ‘{$name}’,
    ‘author’ : {
    ‘@type’ : ‘{$authorType}’,
    ‘name’ : ‘{$authorName}’
    },
    ‘datePublished’ : ‘{$dataPublished}’,
    ‘image’ : ‘{$image}’,
    ‘articleSection’ : ‘{$articleSection}’,
    ‘articleBody’ : ‘{$articleBody}’,
    ‘url’ : ‘{$url}’,
    ‘publisher’ : {
    ‘@type’ : ‘{$publisherType}’,
    ‘name’ : ‘{$publisherName}’
    }";
    echo ‘<script type="application/ld+json">{‘.$json.’}</script>’;
    endwhile; endif;
    rewind_posts();
    }
    }
    [/php]

    ひと通り必要なデータをgetさせた後にJSON-LD構文に流し込むだけのお手軽仕様です。

    ちなみに構造化データには「記事」「商品」「映画」等のバリエーションが存在しますが、このコードは「記事」向けのマークアップになっています。

    「商品」などで利用されたい方は、Googleの「構造化データ マークアップ支援ツール」でJSON-LD構文を確認した上で各自書き換えて見てください。

    ここが難点:テストツールが使えない

    ということでWordPressユーザーにとってはかなり便利そうなJSON-LDですが、どうやら構造化テストツールでテスト出来ない模様・・・

    というのもJSON-LDのサンプルとしてGoogleで記述されているコードをそのまま掲載しても、認識してもらえませんでした・・・

    microdataのみ対応ということでしょうか・・・

    microdataのみ対応ということでしょうか・・・

    他のツールを使うのか、それとも使い方が悪いのかは今後調べていかないといけない項目ですね。

    JSON-LDについてもっと知りたい方は・・・

    JSON-LD - JSON for Linking Data

    JSON-LD – JSON for Linking Data


    JSON-LDについてもっと知りたいという方は公式(JSON-LD – JSON for Linking Data|英語)を見て頂くのが一番です。

    日本語での解説ですと、こちらの3記事あたりが個人的にオススメです。

    イベント絡みですと、9月20日の開催のCSS Nite Vol.36にて「海外SEO情報ブログ」を運営されている鈴木さんがJSON-LDについて紹介予定とのことです。

    JSON-LDは、microdataよりも簡単に構造化データを仕込むことができます。

    SEO的にもオープンデータ的にも注目の言語だと思いますので、今後は要チェックです。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark