レ点腫瘍学ノート

pukiwikiカスタマイズ箇所/2021/jsonld.inc.phpの短縮URL対応 の履歴差分(No.8)


#author("2021-11-29T08:12:34+09:00;2021-06-19T09:54:48+09:00","default:tgoto","tgoto")
&tag(pukiwiki);

#author("2021-06-19T10:12:02+09:00;2021-06-19T09:54:48+09:00","default:tgoto","tgoto")
#ref(https://oncologynote.com/img/69e89e3479.jpg,nolink)

pukiwikiの[[jsonld.inc.phpプラグイン>https://pukiwiki.osdn.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/jsonld.inc.php]]は簡単にpukiwikiにJSON-LDの構造化データを追加することができて重宝していましたが、[[短縮URLプラグイン>https://dajya-ranger.com/pukiwiki/embed-url-shortener/]]を使っているとパンくずリストのURLが正しく表示できず困っていましたので、ここに改変内容を記載しておきます。

jsonld.inc.phpと短縮URLについてはこちらのページをご覧ください。

#ogpi(https://oncologynote.com/?ab056d28f5)
#ogp(https://pukiwiki.osdn.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/jsonld.inc.php)
#ogp(https://dajya-ranger.com/pukiwiki/embed-url-shortener/)

*変更点 [#w35b918a]

**短縮URLに対応する [#g663b32d]

$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 //この行を追加

**見栄えを良くする [#hf8d79b5]

見栄えを良くするために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'

*ダウンロード [#k09a092e]

いずれもpukiwiki 1.5.3をベースとした2021.6.18時点のファイルで、その後アップデートされていることがありますのでご注意ください。

&ref(jsonld.inc.php); (今回改装後のプラグイン)
&ref(jsonld_original.inc.php); (オリジナルのプラグイン)

#ogpi(https://oncologynote.com/?59a15c9237)

&tag(pukiwiki,プラグイン);