カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

WordPress テーマの一覧を取得

この記事は最終更新日から1年以上経過しています。

日本語の公式リファレンスが未記入だったので、覚書の意味も含めて書きたいと思います。

WordPressにて、現在インストールされているテーマの一覧を表示する方法です。
wp_get_themesという関数を使用します。

戻り値に各テーマの情報を連想配列で返してくれますので、ループして情報を取り出すことができます。

$themes = wp_get_themes();
print_r($themes);


出力結果の例

Array
(
    [twentyfifteen] => WP_Theme Object
        (
            [update] => 
            [theme_root:WP_Theme:private] => /rootpath/wp-content/themes
            [headers:WP_Theme:private] => Array
                (
                    [Name] => Twenty Fifteen
                    [ThemeURI] => https://wordpress.org/themes/twentyfifteen/
                    [Description] => Our 2015 default theme is clean, ...
                    [Author] => the WordPress team
                    [AuthorURI] => https://wordpress.org/
                    [Version] => 1.5
                    [Template] => 
                    [Status] => 
                    [Tags] => black, blue, gray, pink, ...
                    [TextDomain] => twentyfifteen
                    [DomainPath] => 
                )

            [headers_sanitized:WP_Theme:private] => 
            [name_translated:WP_Theme:private] => 
            [errors:WP_Theme:private] => 
            [stylesheet:WP_Theme:private] => twentyfifteen
            [template:WP_Theme:private] => twentyfifteen
            [parent:WP_Theme:private] => 
            [theme_root_uri:WP_Theme:private] => 
            [textdomain_loaded:WP_Theme:private] => 
            [cache_hash:WP_Theme:private] => 
        )

)

※取得したオブジェクトのメソッドやプロパティ等の詳細についてはwp-includes/class-wp-theme.phpの内容を参照してください。

テーマの名前だけを表示したいときは以下のようにします。

foreach($themes as $theme) {
    $t = new WP_Theme($theme->stylesheet, get_theme_root());
    echo $t->__toString()."\n";
}

また、テーマのテンプレート名のみ取り出したいときは

foreach($themes as $theme) {
    echo $theme->stylesheet."\n";
}

関数リファレンス/wp get themes – WordPress Codex 日本語版

この記事がお役に立ちましたらシェアお願いします
2,055 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です