<meta name="description">
のcontent
属性値を以下の条件で分岐して表示したいと考えました。
- リソースの「説明(description)」が記述されていればその値を表示
- 記述されていなければ、「グローバル設定」→「サイト」タブの中にある「サイトの悦明」を表示
スニペット
スニペットを新規作成(名前は仮に[[show_description]]
とします)し、以下のPHPコードを記述。
$description = $modx->documentObject['description'];
$site_slogan = $modx->config['site_slogan'];
$result = '';
if(empty($description)) {
$result = $site_slogan;
}
else {
$result = $description;
}
return $result;
最初に2つの値を持ってきて、ごくごく単純なif
文で条件分岐するだけです。
チャンク
今回はhead
タグ内はチャンクに分離させていたので、チャンク内で上述のスニペットを呼び出す形としました。
<head>
<base href="[(site_url)]">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="description" content="[!show_description!]"> <!-- スニペットを呼ぶ -->
<!-- 略 -->
<title>[*pagetitle*] | [(site_name)]</title>
<!-- 略 -->
</head>
こんな形で、やりたかったことを実装することができました。ただし、1.0.15Jで検証したので1.0.22Jで動くかは未検証です。