レ点腫瘍学ノート

descriptionプラグインを使っているかどうかでmetaをわける


#author("2021-02-08T13:21:11+09:00;1970-01-01T18:00:00+09:00","default:tgoto","tgoto")
#author("2021-02-08T13:35:48+09:00;2021-02-08T13:21:11+09:00","default:tgoto","tgoto")
pukiwikiでは[[descriptionプラグイン>https://pukiwiki.osdn.jp/dev/?BugTrack/721]]を使えばmetaタグに記載するdescriptionの中身をスキンに埋め込まれている$head_tagに挿入することができます。

しかし全てのページにこのプラグインを使っているわけではないので、このプラグインを使っていないページでは自動的に本文の最初の指定文字数だけをmetaタグにdescriptionとして埋め込んでくれると便利です。そこで、スキンの<head>内に下記のコードを記載しておくことにしました。これで本文のうち最初の100文字を自動的にmetaタグ内にdescriptionとして埋め込んでくれます。

 <?php if( strpos($head_tag,'<meta http-equiv="description"') === false ) { ?>
 <meta name="description" content="<?php echo $str = str_replace(array("\r\n", "\n"), '', mb_substr(strip_htmltag($body, $all = TRUE), 1, 100, "UTF-8")); ?>" />
 <?php } ?>

まあ、なんとなくコードが冗長なのでもう少しスマートに記載する方法もありそうな気がしますが…。

*OGPも埋め込みたい場合 [#w2d0619d]

OGPにもdescriptionがあります。OGPにも同様のものを埋め込みたい場合は

 <?php if( strpos($head_tag,'<meta http-equiv="description"') === false ) { ?>
 <meta name="description" content="<?php echo $str = str_replace(array("\r\n", "\n"), '', mb_substr(strip_htmltag($body, $all = TRUE), 1, 100, "UTF-8")); ?>" />
 <meta property="og:description" content="<?php echo $str = str_replace(array("\r\n", "\n"), '', mb_substr(strip_htmltag($body, $all = TRUE), 1, 170, "UTF-8")); ?>" />
 <?php } ?>

としておきます。
としておきます。そしてdescription.inc.phpのほうも17行目あたりを

 $head_tags[] = '<meta http-equiv="description" content="'.$content.'">
 <meta property="og:description" content="'.$content.'">';

としておけば$head_tagのほうにもOGP用のdescriptionが挿入されますね。

#ogpi(https://oncologynote.com/?b733981a8c)