Categories
SugiBlog ホームページ制作・システム開発

WordPress テーマの一覧を取得

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

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 日本語版

397 views

コメントを残す

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

*