jsonld.inc.phpの短縮URL対応
pukiwikiのjsonld.inc.phpプラグインは簡単にpukiwikiにJSON-LDの構造化データを追加することができて重宝していましたが、短縮URLプラグインを使っているとパンくずリストのURLが正しく表示できず困っていましたので、ここに改変内容を記載しておきます。
jsonld.inc.phpと短縮URLについてはこちらのページをご覧ください。
変更点
短縮URLに対応する
$thisPageUri = $script . (!$isHome ? '?' . str_replace('%2F', '/', urlencode($title)) : '');の下に次の行を追加します。38行目付近です。
$shorturl = get_short_url_from_pagename($title);
foreach ($names as $name) {}の中に、下記の2行を追加します。「$path .= (($path != )? '/' : ) . urlencode($name);」の次の行あたりで良いでしょう。85行目付近です。
$pathname .= (($pathname != '')? '/' : '') . $name; $shorturl = get_short_url_from_pagename($pathname);
さらに各行を次のように書き換えます。
if (PLUGIN_JSONLD_ARTICLE) {}内(49行目付近)
'@id' => $thisPageUri //この行を削除 '@id' => $script . $shorturl //この行を追加
if (PLUGIN_JSONLD_BREADCRUMBLIST && !$isHome ) {}内(86行目付近)
'item' => $script . '?' . $path //この行を削除 'item' => $script . $shorturl //この行を追加
見栄えを良くする
見栄えを良くするためにJSONのオプションにJSON_PRETTY_PRINTも適用します。これで適宜改行が入って見やすくなります。
$jsonOption = JSON_UNESCAPED_UNICODE | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT; $jsonOption = JSON_UNESCAPED_UNICODE | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_PRETTY_PRINT;
また、リッチリザルトテストのサイトで「名前のないアイテム」とならないようにパンくずリストのJSON-LD内に下記の一行を加えていても良いと思います(SEO的には特に意味は無さそうですが)。92行目付近です。
'name' => 'BreadcrumbList'
ダウンロード
いずれもpukiwiki 1.5.3をベースとした2021.6.18時点のファイルで、その後アップデートされていることがありますのでご注意ください。
jsonld.inc.php (今回改装後のプラグイン)
jsonld_original.inc.php (オリジナルのプラグイン)
この記事に対するコメント
このページには、まだコメントはありません。
添付ファイル: jsonld_original.inc.php 694件 [詳細] jsonld.inc.php 686件 [詳細]
更新日:2021-06-19 閲覧数:1010 views.