なんとかプリロードで出来ないかなぁ~ なんて思っていたんですが・・・
自分の能力では、ちょっと難しすぎるので、テーマに追記する方法で考えてみました。
参考にしたのは、こちらとかこちらとか、Facebookの情報とかです。
次の3つの手順で、比較的適切と思われるOGPを付加することができます。(ついでに、通常のmetaについても同様の情報が付加されます。)
1 html/common/ogp ディレクトリに次の4つのファイルを配置する
- server_url.php (現在表示中のURLを取得するためのもの)
- meta_info.html (メタ情報を書いておくファイル)
- moduletitle.html (モジュールのタイトル、記事のタイトルなどを取得するためのもの)
- user.gif (OGP:image としてデフォルト指定する画像。自分のサイトを代表する画像を用意すると良い。基本は縦横200pxの画像)
2 meta_info.html の内容を自分のサイトに合うように編集(必要に応じて、moduletitle.html も修正加筆した方がよいかも?)
3 利用するテーマのヘッダにOGP表示用の設定を追記する(既存のmetaにも手を入れているので留意のこと)
server_url.phpの内容
<?php
if (file_exists($keywords) === true){
$this->assign(‘xoops_meta_description’,file_get_contents($keywords));
}if ( isset($_SERVER[‘HTTPS’]) and $_SERVER[‘HTTPS’] == ‘on’ )
{
$protocol = ‘https://’;
}
else
{
$protocol = ‘http://’;
}
$url = $protocol.$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’];/* echo $url */
?>
<meta property=”og:url” content=”<?php echo $url ?>”>
meta_info.html のサンプル
<{strip}>
<{*
メタ情報の書き方は,区切り文字 || を挟んで,「ページタイトル」||「METAタグ(キーワード)」||「METAタグ(Description)説明」の順を守ります。情報記入のない場合は、XOOPSで設定したものが入ります。モジュールによっては、descriptionに記事に応じた内容が入るものもあります。
*}>
<{if $xoops_dirname == “mylinks”}>
<{if $smarty.get.cid == 1}>
xoopsモジュールの開発,配布(公開)サイトの情報-<{$cname}>||キーワード1||xoopsモジュールを開発し,公開しているサイトを集めました。どんなモジュールがあって,どんなことができるのかを知りたいときに役立つと思います。
<{elseif $smarty.get.cid == 2}>
xoopsのインストール,設定等に関する解説およびダウンロードサイトの情報-<{$cname}>||キーワード2||xoopsにはじめて触れる方が迷い,悩むと思われるインストール方法や,システム管理の設定方法などを詳しく説明しているサイトの紹介です。意外な情報を見つけることも多いですね。
<{else}>
おすすめリンク集:xoopsおよび関連技術サイトへのリンク集です。||キーワード3||xoops,テーマ・モジュール配布サイト,HTMLやCSSの解説サイト,xoopsの管理・運用・カスタマイズに便利なソフト,学習に欠かせない書籍などの資料の紹介などをしています。
<{/if}>
<{elseif $xoops_dirname == “gnavi”}>
<{if $photo.cid ==”1″}>
<{assign var=”gnavibody” value=$photo.description|strip_tags|strip}>
<{assign var=”xoops_meta_description” value=$gnavibody|mb_substr:”0″:”160″}>
gnaviの一番目の画像||一番目の画像のキーワード||<{$xoops_meta_description}>
<{else}>
それ外のgnaviの画像||||
<{/if}>
<{elseif $xoops_dirname == “webphoto”}>
<{elseif $xoops_dirname == “piCal”}>
<{elseif $xoops_dirname == “pico”}>
<{assign var=”mybody” value=$content.body|strip_tags|strip}>
<{assign var=”xoops_meta_description” value=$mybody|mb_substr:”0″:”160″}>
||||<{$xoops_meta_description}>
<{elseif $xoops_dirname == “ccenter”}>
<{elseif $xoops_dirname == “bulletin”}>
<{if $xoops_requesturi == ‘/modules/bulletin/index.php’}>
||<{$xoops_pagetitle}>,<{$xoops_meta_keywords}>||bulletinのトップページの時の説明文
<{else}><{* bulletinは、トップページ以外は本文がdescriptionに挿入される *}>
||<{$xoops_pagetitle}>,<{$xoops_meta_keywords}>||<{$xoops_meta_description}>
<{/if}>
<{elseif $xoops_dirname == “”}>
<{else}>
<{/if}>
<{/strip}>
moduletitle.html の内容
<{strip}>
<{if $xoops_dirname == “webphoto”}>
<{foreach from=$xoops_breadcrumbs item=”item”}>
<{if $item.url}>
<{$item.name}>,
<{/if}>
<{/foreach}>
<{$title_bread_crumb}>
<{elseif $xoops_dirname == “piCal”}>
<{foreach from=$xoops_breadcrumbs item=”item”}>
<{$item.name}>,
<{/foreach}>
<{elseif $xoops_dirname == “ccenter”}>
<{foreach from=$xoops_breadcrumbs item=”item” name=”loop”}>
<{if $smarty.foreach.loop.first}>
<{$item.name}>,
<{/if}>
<{/foreach}>
<{else}>
<{foreach from=$xoops_breadcrumbs item=”item” name=”loop”}>
<{if $smarty.foreach.loop.first}>
<{$item.name}>
<{else}>
,<{$item.name}>
<{/if}>
<{/foreach}>
<{/if}>
<{/strip}>
テーマのヘッダの meta charaset から下の部分、title以下を下記と入れ替える (html5でない場合は、copyrightのコメントアウトを外すこと)
<{strip}><{* メタ情報等を適切に設定する *}>
<title><{$xoops_sitename}>
<{if $xoops_dirname == “”}>
– <{$xoops_slogan}>
<{else}><{* module title *}>
– <{include file=”`$smarty.const.XOOPS_ROOT_PATH`/common/ogp/moduletitle.html”}>
<{/if}>
</title>
<{/strip}>
<{strip}>
<{include_php file=”`$smarty.const.XOOPS_ROOT_PATH`/common/ogp/server_url_is.php”}>
<{* メタ情報を設定ファイルの読み込み *}>
<{*
**** altsysでカスタムテンプレートを作って、それを読みこむ場合 ****
<{include file=”db:meta_info.html” assign = “metainfo” cname=$category_path|strip_tags|strip:””|replace:”メイン”:””|replace:”:”:””|replace:” ”:””}>
*}>
<{include file=”`$smarty.const.XOOPS_ROOT_PATH`/common/ogp/meta_info.html” assign = “metainfo” cname=$category_path|strip_tags|strip:””|replace:”メイン”:””|replace:”:”:””|replace:” ”:””}>
<{* メタ情報のアサイン *}>
<{assign var=”meta_info” value=”||”|explode:$metainfo}>
<{if $meta_info.0}>
<{assign var=”xoops_pagetitle” value=$meta_info.0}>
<{/if}>
<{if $meta_info.1}>
<{assign var=”xoops_meta_keywords” value=$meta_info.1}>
<{/if}>
<{if $meta_info.2}>
<{assign var=”xoops_meta_description” value=$meta_info.2}>
<{/if}>
<{/strip}>
<meta property=”og:type” content=”website”>
<{* ページタイトルがある場合はタイトルを付加。それ以外はスローガンを付加。 *}>
<{strip}>
<meta property=”og:title” content=”
<{$xoops_sitename}>
<{if $xoops_dirname == “”}>
,<{$xoops_slogan}>
<{else}><{* module title *}>
,<{include file=”`$smarty.const.XOOPS_ROOT_PATH`/common/ogp/moduletitle.html”}>
<{/if}>
“>
<{/strip}>
<{* イメージは、gnaviの時は記事の画像。それ以外は指定場所のイメージ *}>
<meta property=”og:image” content=”<{if $photo.ext}><{$photo.imgsrc_photo}><{else}><{$xoops_url}>/common/ogp/user.gif<{/if}>”>
<meta property=”og:site_name” content=”<{$xoops_sitename}>”>
<meta property=”og:description” content=”<{$xoops_meta_description}>”>
<{strip}>
<meta name=”keywords” content=”
<{if ! $xoops_dirname == “”}>
<{include file=”`$smarty.const.XOOPS_ROOT_PATH`/common/ogp/moduletitle.html”}>,
<{/if}>
<{$xoops_meta_keywords}>” />
<{/strip}>
<meta name=”robots” content=”<{$xoops_meta_robots}>” />
<meta name=”description” content=”<{$xoops_meta_description}>” />
<meta name=”rating” content=”<{$xoops_meta_rating}>” />
<meta name=”author” content=”<{$xoops_meta_author}>” />
<{* meta copyright is not HTML5
<meta name=”copyright” content=”<{$xoops_meta_copyright}>” />
*}><{* メタ情報等を適切に設定する ここまで *}>