ponponumi/ponponcat_post_dataget

1.0.0 2024-12-31 03:03 UTC

This package is auto-updated.

Last update: 2025-03-01 00:42:52 UTC


README

このパッケージは、WordPressの投稿関係のデータを取得する、ライブラリです。

このパッケージは、ponponcat向けに制作されたものですが、ponponcat以外のテーマでも使用可能です。

Composerでのインストールについて

次のコマンドを実行する事で、インストール可能です。

composer require ponponumi/ponponcat_post_dataget

カスタム投稿の注意点について

このライブラリでは、WordPressのカスタム投稿の年別アーカイブ、月別アーカイブ、日別アーカイブの取得自体は可能です。

しかし、パーマリンクを追加する機能はありません。

カスタム投稿の年別アーカイブ、月別アーカイブ、日別アーカイブの取得をする場合は、次のいずれかを行って下さい。

  • テーマに、カスタム投稿のパーマリンクを追加するPHPコードを記述する
  • WordPressのプラグインを使う
  • プラグインを自作する

パッケージの読み込みについて

functions.phpに、次のように入力してください。(autoload.phpへのパスは、必要に応じて修正してください)

require_once __DIR__ . "/vendor/autoload.php";

use Ponponumi\PonponcatPostDataget\ArchivePage;
use Ponponumi\PonponcatPostDataget\TopPage;

メソッドの種類について

このライブラリのメソッドは、全て静的メソッドとして制作されています。

そのため、インスタンスを生成する必要はありません。

TopPageクラスについて

以下のようなメソッドがございます。

settingIsNewPost(): boolean

このメソッドは、トップページの設定が「最新の投稿」ならtrue、「固定ページ」ならfalseを返します。

引数はありません。

サンプルコード

$topIsNewPost = TopPage::settingIsNewPost();
var_dump($topIsNewPost);    // トップページの設定が「最新の投稿」ならtrue、「固定ページ」ならfalse

settingIsFixedPage(): boolean

このメソッドは、トップページの設定が「固定ページ」ならtrue、「最新の投稿」ならfalseを返します。

簡単にいえば、settingIsNewPostメソッドとは、逆の動きをします。

引数はありません。

サンプルコード

$topIsFixedPage = TopPage::settingIsFixedPage();
var_dump($topIsFixedPage);  // トップページの設定が「固定ページ」ならtrue、「最新の投稿」ならfalse

postTopPageUrlGet(): string

このメソッドは、このメソッドでは、投稿ページのトップページのURLを返します。

なお、こちらはカスタム投稿タイプには対応しておりません。

カスタム投稿タイプに対応させる場合、後述するArchivePageクラスのallCategoryUrlGetメソッドを使ってください。

例えば、WordPressがhttps://example.comというドメインで動いている場合、次のようになります。

トップページの設定 戻り値
最新の投稿 https://example.com/
固定ページ(投稿ページのURLスラッグが「blog」) https://example.com/blog/

引数はありません。

サンプルコード

$postTopPage = TopPage::postTopPageUrlGet();
var_dump($postTopPage);     // 戻り値は上記の表のようになります

ArchivePageクラスについて

以下のようなメソッドがございます。

postTypeGet(): string

このメソッドでは、現在の投稿タイプを返します。

なお、「アーカイブページ」または「投稿ページ」ではない場合(例:「front-page.php」、「home.php」、「page.php」などが読み込まれる場合)では、「post」ではなく「空の文字列」を返しますので、ご注意ください。

投稿タイプ 戻り値
通常の投稿タイプ post
カスタム投稿タイプ(投稿タイプ名が「event_info」) event_info
カスタム投稿タイプ(投稿タイプ名が「important」) important

引数はありません。

サンプルコード

$postType = ArchivePage::postTypeGet();
var_dump($postType);    // 戻り値は上記の表のようになります

isCustomPostType(): bool

このメソッドでは、現在がカスタム投稿タイプかどうかを返します。

カスタム投稿タイプの投稿ページ、またはアーカイブページの場合はtrue、それ以外はfalseを返します。

引数はありません。

サンプルコード

$isCustomPostType = ArchivePage::isCustomPostType();
var_dump($isCustomPostType);    // カスタム投稿タイプの投稿ページ、アーカイブページならtrue、それ以外はfalse

postTypeTitleGet(string $defaultTitle=""): string

このメソッドでは、現在の投稿タイプのタイトルを取得します。

カスタム投稿タイプでない投稿であれば、defaultTitleで渡した値を返します。

トップページや固定ページであれば、空の文字列を返します。

引数について

string $defaultTitle

通常の投稿タイプの場合、表示する文字列を渡してください。

省略した場合は「空の文字列」になります

サンプルコード

$postTypeTitle = ArchivePage::postTypeTitleGet("ブログ");
var_dump($postTypeTitle);   // カスタム投稿タイプの場合はその投稿タイプの名前、通常の投稿タイプならこの場合は「ブログ」
$postTypeTitle = ArchivePage::postTypeTitleGet("BLOG");
var_dump($postTypeTitle);   // カスタム投稿タイプの場合はその投稿タイプの名前、通常の投稿タイプならこの場合は「BLOG」

allCategoryUrlGet(): string

このメソッドでは、現在の投稿タイプの全てのカテゴリの、記事一覧ページへのURLを返します。

カスタム投稿タイプの場合は、その投稿タイプの記事一覧ページへのURLを返します。

カスタム投稿タイプ以外の場合は、TopPageクラスのpostTypeGetメソッドと同じ動きをします。

引数はありません。

例えば、WordPressがhttps://example.comというドメインで動いている場合、次のようになります。

現在のページ トップページの設定 戻り値
通常の投稿タイプ 最新の投稿 https://example.com/
通常の投稿タイプ 固定ページ(投稿ページのURLスラッグが「blog」) https://example.com/blog/
カスタム投稿タイプ(投稿タイプ名は「event_info」) どちらでも https://example.com/event_info/
固定ページ 最新の投稿 https://example.com/
固定ページ 固定ページ(投稿ページのURLスラッグが「blog」) https://example.com/blog/
トップページ 最新の投稿 https://example.com/
トップページ 固定ページ(投稿ページのURLスラッグが「blog」) https://example.com/blog/
ホームページ 最新の投稿 https://example.com/
ホームページ 固定ページ(投稿ページのURLスラッグが「blog」) https://example.com/blog/

サンプルコード

$allCategoryUrl = ArchivePage::allCategoryUrlGet();
var_dump($allCategoryUrl);  // 戻り値は上記の表のようになります

categorySupportCheck(bool $default=true): bool

カスタム投稿の場合、カテゴリをサポート中かどうかを返します。

カテゴリをサポート中の場合はtrue、サポート中でない場合はfalseを返します。

カスタム投稿以外の場合、defaultに渡した値(省略した場合はtrue)を返します。

引数について

bool $default

カスタム投稿以外の場合、返す値を渡して下さい。

省略した場合はtrueになります。

サンプルコード

$categorySupportCheck = ArchivePage::categorySupportCheck(true);
var_dump($categorySupportCheck);    // カテゴリをサポート中の場合はtrue、サポート中でない場合はfalse、カスタム投稿以外の場合はdefaultの値

categoriesGet(): array

現在の投稿タイプのカテゴリ一覧を返します。

カテゴリがサポートされていないカスタム投稿の場合、空の配列を返します。

引数はありません。

サンプルコード

$categories = ArchivePage::categoriesGet();
var_dump($categories);  // 以下の配列と同じような形式の配列になります。

$result = [
    [
        "url" => "https://example.com/category/php/",
        "name" => "PHP",
    ],
    [
        "url" => "https://example.com/category/wordpress/",
        "name" => "wordpress",
    ],
    [
        "url" => "https://example.com/category/uncategorized/",
        "name" => "未分類",
    ],
];

yearsGet(): array

現在の投稿タイプの投稿年一覧を取得します。

現在が投稿関係のページではない場合、通常の投稿タイプの投稿年一覧を返します。

引数はありません。

サンプルコード

$years = ArchivePage::yearsGet();
var_dump($years);   // 以下の配列と同じような形式の配列になります。

$result = [
    "2024",
    "2023",
    "2022",
];

monthsGet(): array

現在の投稿タイプの投稿月一覧を取得します。

現在が投稿関係のページではない場合、通常の投稿タイプの投稿月一覧を返します。

引数はありません。

サンプルコード

$months = ArchivePage::monthsGet();
var_dump($months);  // 以下の配列と同じような形式の配列になります。

$result = [
    "2024/12",
    "2024/11",
    "2024/7",
];

datesGet(): array

現在の投稿タイプの投稿日一覧を取得します。

現在が投稿関係のページではない場合、通常の投稿タイプの投稿日一覧を返します。

引数はありません。

サンプルコード

$dates = ArchivePage::datesGet();
var_dump($dates);   // 以下の配列と同じような形式の配列になります。

$result = [
    "2024/12/12",
    "2024/11/30",
    "2024/11/17",
];

postTypeArchive(string $type): bool

指定した投稿タイプに、アーカイブページがあるかどうかを調べます。

アーカイブページがある場合はtrue、ない場合はfalseを返します。

投稿タイプが見つからない場合はfalseを返します。

引数について

string $type

ここには、カスタム投稿タイプの名前を渡して下さい。

サンプルコード

$check = ArchivePage::postTypeArchive("event");
var_dump($check);   // 「event」という投稿タイプのアーカイブページが有効ならtrue。無効の場合、投稿タイプがない場合はfalse。

yearsUrlGet(string $format="Y"): array

現在の投稿タイプの投稿年一覧に、URLを含めて取得します。

現在が投稿関係のページではない場合、通常の投稿タイプの投稿年一覧を返します。

引数について

string $format

日付のフォーマットを指定してください。

省略した場合は「Y」になります。

サンプルコード

$years = ArchivePage::yearsUrlGet("Y年");
var_dump($years);   // 以下の配列と同じような形式の配列になります。

$result = [
    [
        "url" => "https://example.com/2024/",
        "name" => "2024年",
    ],
    [
        "url" => "https://example.com/2023/",
        "name" => "2023年",
    ],
    [
        "url" => "https://example.com/2022/",
        "name" => "2022年",
    ],
];

monthsUrlGet(string $format="Y/n"): array

現在の投稿タイプの投稿月一覧に、URLを含めて取得します。

現在が投稿関係のページではない場合、通常の投稿タイプの投稿月一覧を返します。

引数について

string $format

日付のフォーマットを指定してください。

省略した場合は「Y/n」になります。

サンプルコード

$months = ArchivePage::monthsUrlGet("Y年n月");
var_dump($months);  // 以下の配列と同じような形式の配列になります。

$result = [
    [
        "url" => "https://example.com/2024/12/",
        "name" => "2024年12月",
    ],
    [
        "url" => "https://example.com/2024/11/",
        "name" => "2024年11月",
    ],
    [
        "url" => "https://example.com/2024/7/",
        "name" => "2024年7月",
    ],
];

datesUrlGet(string $format="Y/n/j"): array

現在の投稿タイプの投稿日一覧に、URLを含めて取得します。

現在が投稿関係のページではない場合、通常の投稿タイプの投稿日一覧を返します。

引数について

string $format

日付のフォーマットを指定してください。

省略した場合は「Y/n/j」になります。

サンプルコード

$dates = ArchivePage::datesUrlGet("Y年n月j日");
var_dump($dates);   // 以下の配列と同じような形式の配列になります。

$result = [
    [
        "url" => "https://example.com/2024/12/12/",
        "name" => "2024年12月12日",
    ],
    [
        "url" => "https://example.com/2024/11/30/",
        "name" => "2024年11月30日",
    ],
    [
        "url" => "https://example.com/2024/11/17/",
        "name" => "2024年11月17日",
    ],
];

ライセンスについて

このパッケージは、GPL 2.0 (GNU GENERAL PUBLIC LICENSE 2.0)として作成されています。

このパッケージを使い、商用利用、再配布、改変は可能ですが、ソースコードを非公開のまま配布したり、互換性のないライセンス(MITなど)を適用させたりすることはできません。