Open Graph Protocol(OGP)モジュール

Open Graph Protocol(OGP)モジュールとは、meta要素やOGPの情報を表示する機能のことです。カスタムフィールドのSEO設定に登録された情報を表示します。

この機能は、管理画面>コンフィグ >OGPまたは管理画面>モジュールID のページで新規モジュールを作成することで利用できます。

タイトル設定

<title>要素やOGPのタイトル表示で使用されるタイトルに関する設定です。


項目 概要 初期値
優先順序 タイトルで使われるパーツの優先順序を設定します。
利用可能パーツ (entry, page, tag, keyword, date, admin, 404, category, blog, rootBlog) 
entry, page, tag, keyword, date, admin, 404, category, blog, rootBlog
パーツの区切り文字 タイトルの区切り文字を設定します。  | 
エントリーのカスタムフィールド名 タイトルで使われるカスタムフィールド名を設定します。このフィールドがない場合は、エントリーのタイトルが使われます。 entry_meta_title
カテゴリーのカスタムフィールド名 タイトルで使われるカスタムフィールド名を設定します。このフィールドがない場合は、カテゴリー名が使われます。 category_meta_title
ブログのカスタムフィールド名 タイトルで使われるカスタムフィールド名を設定します。このフィールドがない場合は、ブログ名が使われます。 blog_meta_title
階層表示 ブログとカテゴリーの階層構造をタイトルに含めるか指定します。
空のエントリーコード 空のエントリーコードの場合はそのタイトルを含めないようにします。
ページのフォーマット ページ番号を出力するテキストのフォーマットを設定します。ページ番号は{page}で表示されます。 {page}ページ目
タグの区切り文字 タグの区切り文字を設定します。
日付の書式 日付の書式を設定します。PHPのdateに準拠しています。 Y/m/d
管理ページのタイトル 管理ページのタイトルを設定します。 管理ページ
404のタイトル 404エラー時のタイトルを設定します。 お探しのページは見つかりませんでした

画像設定

OGPのサムネイル画像に関する設定です。

表示する優先度は下記になります。

  1. エントリーのカスタムフィールド画像
  2. エントリーのユニット画像(「ユニットのメイン画像は含めない」項目でオフを選択した場合)
  3. カテゴリーのカスタムフィールド画像
  4. ブログのカスタムフィールド画像
  5. ルートブログのカスタムフィールド画像

項目 概要 初期値
ユニットのメイン画像は含めない(Ver.2.11から利用可能) チェックをすると、ユニットのメイン画像はOGP画像に含まれなくなります。 オフ
エントリーのカスタムフィールド名 エントリーのカスタムフィールド名を設定します。 ogp_image
カテゴリーのカスタムフィールド名 カテゴリーのカスタムフィールド名を設定します。 ogp_image
ブログのカスタムフィールド名 ブログのカスタムフィールド名を設定します。 ogp_image

ディスクリプション設定

OGPのディスクリプションに関する設定です。

ディスクリプションを表示する優先度は下記になります。

  1. エントリーのカスタムフィールド
  2. エントリーのサマリー(フルテキスト)
  3. カテゴリーのカスタムフィールド
  4. ブログのカスタムフィールド
  5. ルートブログのカスタムフィールド

項目 概要 初期値
エントリーのディスクリプションの表示設定 チェックすると、エントリーのカスタムフィールドに値が設定されていない場合はエントリーのディスクリプションを表示しません。 オフ
エントリーのカスタムフィールド名 エントリーのカスタムフィールド名を設定します。 entry_meta_description
カテゴリーのカスタムフィールド名 カテゴリーのカスタムフィールド名を設定します。 category_meta_description
ブログのカスタムフィールド名 ブログのカスタムフィールド名を設定します。 blog_meta_description

キーワード設定

meta要素で指定できるkeywordに関する設定です。

キーワードを表示する優先度は下記になります。

  1. エントリーのカスタムフィールド
  2. カテゴリーのカスタムフィールド
  3. ブログのカスタムフィールド
  4. ルートブログのカスタムフィールド

項目 概要 初期値
エントリーのカスタムフィールド名 エントリーのカスタムフィールド名を設定します。 entry_meta_keywords
カテゴリーのカスタムフィールド名 カテゴリーのカスタムフィールド名を設定します。 category_meta_keywords
ブログのカスタムフィールド名 ブログのカスタムフィールド名を設定します。 blog_meta_keywords

【PHP8.3対応】Ver. 3.1.14 リリースのお知らせ


この記事では、2024年4月23日にリリースした Ver. 3.1.14 及び、Ver. 3.0.34、Ver. 2.11.63、Ver. 2.10.55 の修正内容について紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

Ver. 3.1.14 リリースノート

変更点・新機能

  • CMS-6694 PHP8.2, 8.3対応
  • CMS-6618 プレビュー画面で直前で利用したデバイスの履歴を残せるように修正
  • CMS-6787 setup 機能を改善

修正点

  • CMS-6773 フォームの新規作成時にログの設定をしても反映されない問題の修正
  • CMS-6772 フォームの「ログを残さないようにする」機能が環境によっては動作しない問題の修正
  • CMS-6774 メディアダウンロードパスの解決が不十分で、シークレットブログや非公開ブログでメディアがダウンロードできない場合がある問題を修正
  • CMS-6777 Ver. 3.1.12 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正
  • CMS-6784 /admin/module/setting.html のリンクの文言を「編集する」に統一
  • CMS-6769 エントリ編集画面でCategory_EntryListが動作すると、phpエラーが発生する不具合を修正
  • CMS-6785 resizeImg 校正オプションをスニペットのコード内で利用するように変更
  • CMS-6656 モジュールが空文字や真偽値を返す場合、API機能利用時に不正なJSONがレスポンスされてしまう問題の修正
  • CMS-6756 管理画面のメディア検索で、「年」「月」の両方を指定すると動作しない問題の修正
  • CMS-6753 データベースのバックアップ機能でキャッシュデータが保存されるテーブルもバックアップしてしまう問題の修正
  • CMS-6760 メールマガジン機能のテンプレートでメディアユニットが表示できない問題の修正
  • CMS-6696 カスタムユニットの中のグループのテキスト2つ目以降のテキストが全文検索でヒットしない問題の修正

Ver. 3.0.34 リリースノート

修正点

  • CMS-6776 Ver. 3.0.32 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正

Ver. 2.11.63 リリースノート

修正点

  • CMS-6778 Ver. 2.11.61 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正

Ver. 2.10.55 リリースノート

修正点

  • CMS-6779 Ver. 2.10.53 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正

主なリリースノートの詳細な内容

CMS-6694 PHP8.2, 8.3対応

Ver. 3.1.14 より PHPバージョン 8.2 及び、8.3 に対応いたしました。

より新しいバージョンの PHP を利用することで、パフォーマンスやセキュリティ的にも改善が期待できます。是非 PHP 8.2 や、PHP 8.3 の環境で a-blog cms をご利用ください。

CMS-6618 プレビュー画面で直前で利用したデバイスの履歴を残せるように修正

プレビュー機能で、直前に利用したデバイスをブラウザ(ローカルストレージ)に保存するオプションを追加しました。


以前のバージョンでは、管理画面 > コンフィグ > 機能設定から設定している初期デバイスがプレビューボタン押下時のデバイスとして適用されていたため、初期デバイス以外のデバイスで閲覧したいユーザーは毎回デバイスを選択し直す必要がありました。


Ver. 3.1.14 より、管理画面 > コンフィグ > 機能設定から「直前に利用したデバイスをブラウザに保存する」オプションを有効にすることで、プレビュー機能利用中にデバイスを変更したことがブラウザ(ローカルストレージ)に保存され、次回プレビュー時に保存したデバイスが適用された状態でプレビュー機能を利用することができるようになります。


「直前に利用したデバイスをブラウザに保存する」オプションの設定画面

「直前に利用したデバイスをブラウザに保存する」オプションの設定画面


これにより、ユーザーは毎回デバイスを選択し直す必要がなくなり、記事の確認をスムーズに行うことができるようになります。

CMS-6787 setup 機能を改善


インストーラーのUIがキレイになりました。この画像はインストーラーの初期画面です。

インストーラーの初期画面


下記の点で setup (メンテナンスツール・インストーラー)の機能を改善しました。

  • DB の文字コード euc & sjis を廃止
  • DB の文字コード utf8mb4 を追加
  • media , storage のパーミッションチェック
  • .env ファイルの設定チェック
  • インストーラー&メンテナンスツールのレイアウトを調整
  • メンテナンスツール「カスタムフィールド検索フラグの修正」を非表示(対象が v1.4.0b2〜v1.4.0正式版が対象であったため)
  • ログアウトボタンを追加
  • 子ブログ同時インストール可能に修正(site[lp@site] のように指定)
  • エクスポート機能で media, media_tag, geo, entry_sub_category テーブルもエクスポートできるように修正

特に UI が変更されておりますので、今までの UI に慣れている方はお気をつけください。

CMS-6696 カスタムユニットの中のグループのテキスト2つ目以降のテキストが全文検索でヒットしない問題の修正

カスタムユニット内でフィールドグループを利用した場合、2つ目以降の入力欄に入力したデータが全文検索用データとして保存されていなかった問題を修正いたしました。

上記の問題により、以前のバージョンでは、カスタムユニット内でフィールドグループを利用した場合2つ目以降の入力欄に入力したデータでは全文検索機能で検索できておりませんでした。

Ver. 3.1.14 以降で保存したデータは問題ありませんが、以前のバージョンで保存されている全文検索用データは修正されておりません。そのため、管理画面 > データ修正 > フルテキスト修正 よりエントリーのフルテキストデータの再生成を行ってください。

フルテキスト修正を行うことで、以前のバージョンでカスタムユニット内でフィールドグループを利用して保存されている場合でも、全文検索で2つ目以降の入力欄に入力したデータが検索できるようになります。

最後に

該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。
また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。
今後ともどうぞよろしくお願いいたします。

スケジュールの編集権限を変更する

config.system.yaml に1行追記し、スケジュールの編集権限を変更できます。この機能はVer.2.11から利用可能です。

スケジュールの編集権限は管理者または編集者を選択できます。初期値は編集者以上になっています。


項目 選択肢 初期値
schedule_admin_authority administrator | editor editor

Entry_BodyモジュールでRSSファイルを作成する

a-blog cms では、/themes/system/rss2.xml が用意されており、特に意識しなくてもルート直下にRSSファイルが生成されます。他のテンプレートファイルと同様、お使いのテーマに複製してカスタマイズすることも可能です。このファイルには Feed_Rss2モジュールが使用されています。しかし、Feed_Rss2モジュールでは変数等が限られています。このエントリーでは、Entry_Bodyモジュールを使用したよりきめ細かいRSSファイルの実装について説明します。

Entry_Bodyモジュールを使うとできるようになること

  • カスタムフィールドの値を出す
  • RSS にメイン画像のURLを出す
  • タグの値を出す
  • エントリー日時だけでなく、更新日時を出す
  • Entry_TagRelationalモジュールなどで関連エントリーを出す

例えば多言語サイトで言語ごとのタイトルをカスタムフィールドで作成している場合、各ニュースサイトに最適化したソースを出したい場合などに便利です。

ソースの例

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><!-- BEGIN_MODULE Entry_Body id="rss" -->
    <channel>
        <title>%{ROOT_BLOG_NAME}</title>
        <link>%{HOME_URL}</link>
        <description>%{META_DESCRIPTION}</description>
        <language>ja</language>
        <copyright>(C) %{ROOT_BLOG_NAME}</copyright>
        <lastBuildDate>%{r}</lastBuildDate><!-- BEGIN entry:loop -->
        <item>
            <title>{title}[raw|striptags]</title>
            <link>{permalink}</link>
            <guid isPermaLink="true">{permalink}</guid>
            <description>{summary}[raw|striptags]</description>
            <!-- BEGIN mainImage --><!-- BEGIN_IF [{path}/nem/] --><media:content url="<!-- BEGIN_IF [{image@type}/eq/media] -->%{HTTP_MEDIA_ARCHIVES_DIR}{path}<!-- ELSE -->%{HTTP_ARCHIVES_DIR}{path}<!-- END_IF -->" media="image" /><!-- END_IF --><!-- END mainImage -->
            <content:encoded>
            <![CDATA[
            @include("/include/unit.html")
            ]]>
            </content:encoded>
            <pubDate>{date#r}</pubDate>
            <lastPubDate>{udate#r}</lastPubDate>
            <!-- BEGIN tag:veil --><!-- BEGIN tag:loop --><tags>{name}[raw]></tags><!-- END tag:loop -->
            <!-- END tag:veil --><!-- BEGIN category:veil --><!-- BEGIN category:loop --><category>{name}[raw]></category><!-- END category:loop --><!-- END category:veil -->
        </item><!-- END entry:loop -->
    </channel><!-- END_MODULE Entry_Body -->
</rss>

ポイントは下記の通りです。

  • channelタグの外側を Entry_Bodyモジュールで囲い、モジュールIDを rss としています。
  • lastBuildDate にはグローバル変数 %{r} を使って RFC 5322 形式でフォーマットされた現在の日付を出しています。a-blog cms ではこのように、phpのdate関数フォーマットに指定出来る日付の書式がそのままグローバル変数として使えます。
  • itemタグの外側を entry:loop で囲っています。
  • description には summary を出しています。
  • content:encoded には unit.html をインクルードしています。調整が必要な場合は unit-rss.html 等のファイルを作成してインクルードしてください。
  • media:content にメイン画像のパスを出力しています。
  • content:encoded, media:content を扱う場合には rssタグにそれぞれ 名前空間の指定が必要になります。詳しくはフィードに関する技術的な要件を参考にしてください。

Entry_TagRelationalモジュールなどで関連エントリーを出す場合についてはここでは説明を省きますが、エスケープが必要になることに注意してください。

モジュールIDの設定例


表示設定

条件設定

モジュールIDの設定のポイントは、下記の通りです。

  • 表示設定ではカテゴリー表示順を「現在のカテゴリーのみ」としてカテゴリを1つだけ出すようにしています。ページャー等不要なもののチェックを外しています。
  • 条件設定ではお知らせカテゴリーに絞り込み、引数のフィールドに entry_meta_rss/em を設定して、「RSSに表示しない」にチェックの入っているエントリーを出力しないようにしています。

最後に

もちろん、これらのソースや設定は一例にすぎません。a-blog cms ではこのように、RSSファイルを生成するからといって、必ずFeed_Rss2モジュールを使用しなければならないということはありません。目的に沿ったソースを生成できるモジュールであれば、何を使ってもかまわないのです。実装の際に参考にしていただければ幸いです。

フォームの編集権限を変更する

config.system.yaml に1行追記し、フォームの編集権限を変更できます。この機能はVer.2.11から利用可能です。

フォームの編集権限は管理者または編集者を選択できます。初期値は編集者以上になっています。


項目 選択肢 初期値
form_admin_authority administrator | editor editor