Skip to content

DailyArticleTemplate - パラメータ仕様

関数シグネチャ

php
function generate_daily_article_template(
    $date,
    $halls,
    ?string $manual_content = null,
    ?string $kishu = null
): string

パラメータ一覧

パラメータ必須デフォルト説明
$datestring|DateTime|null必須null対象日付(YYYY-MM-DD形式、YYYYMMDD形式、またはDateTimeオブジェクト)
$hallsstring|array|null必須nullホール名(カンマ区切り文字列、配列、またはnull)。配列の場合は自動的に文字列へ変換されます
$manual_contentstring|null任意null手動入力部分のコンテンツ(HTML、WordPressブロック形式、ショートコードを含む)
$kishustring|null任意null機種名(kishudataショートコード用)

パラメータ詳細

$date - 日付

: string|DateTime|null
必須: はい
説明: 対象日付を指定します。

対応形式:

  • YYYY-MM-DD 形式(例: "2024-11-01"
  • YYYYMMDD 形式(例: "20241101"
  • DateTimeオブジェクト

使用例:

php
$date = "2024-11-01";
$date = "20241101";
$date = new DateTime('2024-11-01');

バリデーション:

  • 日付として有効な値である必要があります
  • 空文字列やnullの場合はValidationExceptionがスローされます

$halls - ホール名

: string|array|null
必須: はい
説明: 対象ホールを指定します。複数ホールを指定する場合は、カンマ区切り文字列または配列で指定できます。

対応形式:

  • カンマ区切り文字列(例: "アイランド秋葉原,エスパス秋葉原"
  • 配列(例: ["アイランド秋葉原", "エスパス秋葉原"]
  • 単一ホール(例: "アイランド秋葉原"

対応ホール:

  • アイランド秋葉原
  • エスパス秋葉原
  • ビッグアップル秋葉原
  • 秋葉原uno

使用例:

php
$halls = "アイランド秋葉原";
$halls = "アイランド秋葉原,エスパス秋葉原";
$halls = ["アイランド秋葉原", "エスパス秋葉原"];

処理:

  • 配列の場合は自動的にカンマ区切り文字列に変換されます
  • カンマが連続している場合(例: "island,,espasu")や、末尾にカンマがある場合(例: "island,espasu,")は、空の要素が自動的に除去されます

バリデーション:

  • 対応ホール名である必要があります
  • 空文字列やnullの場合はValidationExceptionがスローされます
  • 無効なホール名が含まれている場合もValidationExceptionがスローされます

$manual_content - 手動入力部分

: string|null
必須: いいえ
デフォルト: null
説明: 手動入力部分のコンテンツを指定します。HTML、WordPressブロック形式、ショートコードを含むコンテンツを入力可能です。

使用例:

php
$manual_content = "<p>今日の考察内容</p>";
$manual_content = "<!-- wp:paragraph --><p>手動入力部分</p><!-- /wp:paragraph -->";
$manual_content = "<p>手動入力部分</p><!-- wp:shortcode -->[SomeOtherShortcode]<!-- /wp:shortcode -->";

処理:

  • 各ホールごとに出力されます
  • ショートコードが含まれている場合は、do_shortcode()で実行されます
  • XSS対策として、wp_kses_post()でサニタイゼーション処理が行われます
  • 空文字列の場合はnullとして扱われます

注意事項:

  • 信頼できるHTMLタグのみが許可されます(wp_kses_post()による制限)
  • 管理者のみが使用する想定のため、セキュリティリスクは限定的です

$kishu - 機種名

: string|null
必須: いいえ
デフォルト: null
説明: 機種名を指定します。kishudataショートコード用のパラメータです。

使用例:

php
$kishu = "犬夜叉";
$kishu = "犬夜叉'_'まどか叛逆"; // 複数機種指定の場合

処理:

  • kishuが指定されている場合、各ホールごとに[kishudata]ショートコードが生成されます
  • 空文字列の場合はnullとして扱われます

戻り値

: string
説明: 生成されたショートコード文字列を返します。

形式: WordPressブロックエディタ形式(<!-- wp:shortcode -->)で出力されます。

エラー時:

  • バリデーションエラー: WP_DEBUGが有効な場合のみエラーメッセージが表示されます
  • 予期しないエラー: error_log()でログに記録され、WP_DEBUGが有効な場合のみエラーメッセージが表示されます
  • エラー時は空文字が返されます(デバッグモードでない場合)

バリデーション処理

日付のバリデーション

  • CommonValidationUtil::validate_and_convert_date()を使用
  • 日付として有効な値である必要があります
  • 無効な場合はValidationExceptionがスローされます

ホール名のバリデーション

  • CommonValidationUtil::validate_and_convert_hall()を使用
  • 対応ホール名である必要があります
  • 無効な場合はValidationExceptionがスローされます

手動入力部分のサニタイゼーション

  • wp_kses_post()を使用してXSS対策を実施
  • 信頼できるHTMLタグのみが許可されます

エラー時の挙動

ValidationException

バリデーションエラーが発生した場合:

php
// WP_DEBUGが有効な場合
return '<!-- DailyArticleTemplate Validation Error: {エラーメッセージ} -->';

// WP_DEBUGが無効な場合
return '';

その他のException

予期しないエラーが発生した場合:

php
// エラーログに記録
error_log('DailyArticleTemplate Error: {エラーメッセージ}');

// WP_DEBUGが有効な場合
return '<!-- DailyArticleTemplate Error: {エラーメッセージ} -->';

// WP_DEBUGが無効な場合
return '';

使用例

基本的な使用

php
$date = "2024-11-01";
$halls = "アイランド秋葉原";
echo generate_daily_article_template($date, $halls);

すべてのパラメータを使用

php
$date = "2024-11-01";
$halls = "アイランド秋葉原,エスパス秋葉原";
$manual_content = "<p>手動入力部分</p>";
$kishu = "犬夜叉";
echo generate_daily_article_template($date, $halls, $manual_content, $kishu);

参考資料

最終更新

  • 更新日: 2025-11-28
  • バージョン: 1.0