Pickles 2 のブログは、1記事1行の CSV または Microsoft Excel のファイル形式で管理する、サイトマップ管理機能と似た機能となっていますが、いくつかの異なる点があります。
サイトマップは、サイトマップを更新するとキャッシュが再生成されますが、ページ数が多くなるに連れ、キャッシュ生成に長く時間がかかるようになっていきます。キャッシュ生成の処理でもっとも負荷の高い処理は、パンくず階層の整理でした。ブログ機能は、パンくず階層を整理しない代わりに、キャッシュ生成を高速に完了できるのが、もっとも大きな違いです。
ブログ管理機能は、プラグイン pickles2/px2-blog-kit
によって追加される機能です。
ブログCSVは、ホームディレクトリ(px-files/
) の中にある、 blogs/
ディレクトリ直下に格納します。
ブログは複数のCSVファイルに分けて格納することができます。1つのCSVファイルが、1つのブログを生成します。 CSVファイル名から拡張子を除いた部分を、ブログID として認識されます。
例えば、 articles.csv
に記述された記事は、ブログID articles
にリストされます。
サイトマップと同様、ブログ定義もグラフィカルな Excel ファイル形式で編集できます。 pickles2/px2-sitemapexcel
プラグインによって追加される機能です。
Pickles 2 本来の機能では、 CSVファイルで管理されるのが基本です。このページでは、CSVファイルでの編集について説明します。
ブログの定義は、メインコンフィグ config.php
に記述します。
ブログは、 pickles2/px2-blog-kit
プラグインによって処理されますので、ブログの定義は このプラグインのオプションとして記述します。
/**
* funcs: Before content
*/
$conf->funcs->before_content = array(
// BlogKit
\pickles2\px2BlogKit\register::blog( array(
"blogs" => array(
"articles" => array( // ブログID
"orderby" => "update_date", // 並べ替えに使用するカラム名
"scending" => "desc", // 並び順 (昇順 asc or 降順 desc)
"logical_path" => "/articles/{*}", // パンくず (サイトマップCSV上での記法と同じ)
),
),
) ),
);
この例では、 ブログID articles
を設定しています。つまり、 articles.csv
に記載された記事リストに適用される定義となります。
orderby
で並び替えのキーを指定します。デフォルトは update_date
です。scending
には、昇順 asc
または 降順 desc
のいずれかを指示できます。デフォルトは 降順 desc
です。logical_path
は、パンくずの階層を指定します。指定の形式はサイトマップCSVの locical_path
列と同じです。省略した場合は、トップページ直下に配置されます。定義されていないブログは、すべてデフォルト値の設定で処理されます。
* 定義名
のように、先頭にアスタリスクを記述します。* path
、* title
は必須です。必ず定義に加えてください。列 | キー | 意味 |
---|---|---|
A | title | ページタイトル |
B | path | ページのパス |
C | release_date | 公開日 |
D |
update_date | 更新日 |
E |
article_summary | 記事サマリ |
F | article_keywords | 記事キーワード |
title
タグや、h1
タグ、パンくず、ナビゲーション上のリンクラベルなどに利用されます。
ページのパスを入力します。必須項目です。
パスは、スラッシュから始まる絶対パスで記入します。URLの origin 部分は含みません。
Pickles 2 は、ページのユニークな識別子として path
を利用しますので、同じパスのページを複数定義することはできません。
もし、プロジェクト設定の $conf->path_controot
に深い階層が設定されている場合、絶対パスの起点はこのディレクトリになります。
記事の公開日を YYYY-MM-DD
形式(例: 2023-05-07
) で指定します。
記事の更新日を YYYY-MM-DD
形式(例: 2023-05-07
) で指定します。
デフォルトでは、update_date
は記事リストの並び替えのキーとして利用されます。
記事のサマリ文言を指定します。この文字列は、記事一覧に表示されます。
記事の内容を端的に表すキーワードを指定します。
サイトマップと同様、ブログでも定義を任意の名称で追加することができます。コンテンツやテーマから参照する方法は、サイトマップと同じです。
例えば、 * custom_col
と定義した列の値は、$px->site()->get_page_info( 'page_id', 'custom_col' )
や $px->site()->get_current_page_info( 'custom_col' )
で取得することができます。
また、定義列は、任意に並べ替えることができます。 よくアクセスする列を左の方へ配置するなど、使いやすいスタイルに調整することができます。
サイトマップに標準的に定義されている定義列を追加すると、サイトマップと同様の効果が得られるはずです。例えば、 layout
列を追加すれば、その記事に適用するテーマレイアウトを選択することができます。
ただし、次の定義列はブログでは定義することができないことに注意してください。
id
logical_path
記事の一覧ページは、サイトマップに記載します。
次の条件で追加してください。
/{*}
で終わるようにしてください。例: /articles/{*}
このページのコンテンツには、次のように実装します。
<?= $px->blog->mk_list_page(
array(
"blog_id"=> 'articles', // ブログID
"orderby" => 'update_date', // 並び順
"scending" => 'desc', // 昇順 or 降順
"dpp" => 10, // 1ページあたりの表示記事件数
"index_size" => 5, // ページネーションのサイズ
"list_page_id" => null, // 2ページ目以降のリストを別のページに転送する場合に指定する
)
); ?>
または、 ブロックエディタ編集では、pickles2/px2-blog-kit
プラグインに同梱されている「記事リスト」モジュールを配置して作成することもできます。
設定ファイル config.php
(通常は ./px-files/config.php
) を編集します。
before_output
の任意の位置に設定を追加します。
<?php
/* 中略 */
/**
* funcs: Before output
*/
$conf->funcs->before_output = array(
// BlogKit: RSS出力
\pickles2\px2BlogKit\register::feeds( array(
"path_trigger" => "/",
"blog_id" => "articles",
"orderby" => "update_date",
"scending" => "desc",
'dpp' => 10,
'lang' => 'ja',
'scheme' => 'https',
'domain' => 'yourdomain.com',
'title' => 'test list 1',
'description' => 'TEST LIST',
'url_home' => 'https://yourdomain.com/',
'url_index' => 'https://yourdomain.com/listsample/',
'author' => 'Tomoya Koyanagi',
'dist' => array(
'atom-1.0' => '/rss/atom0100.xml',
'rss-1.0' => '/rss/rss0100.rdf',
'rss-2.0' => '/rss/rss0200.xml',
),
) ),
);
path_trigger
は、RSSフィード出力処理を実行するパスを指定します。例えば、トップページ /
を指定すると、トップページをプレビューしたとき、あるいはトップページがパブリッシュされたときに、生成が実行されるようになります。dist
には、RSSフィードの出力先パスを指定します。 フィードは、 Atom 1.0、 RSS 1.0、RSS 2.0 の形式に対応しています。それぞれの出力先ファイル名を設定します。