WordPress

WordPress 現在使用しているテンプレートファイル名を表示する方法

WordPress で現在表示で使用しているテンプレートファイル名を表示する方法を紹介します。
例えば、WordPress の制作を引き継いだ時、どのテンプレートファイルを修正したらいいか分からない時に便利な方法です。
テンプレートファイル名の表示方法と合わせて、テンプレートファイル名を使った条件分岐の方法も紹介します。

  1. テンプレートファイル名の表示方法
    1. ログイン中にテンプレートファイル名を表示
    2. テーマディレクトリ名とテーマファイル名を表示
  2. テンプレートファイル名を使った条件分岐

テンプレートファイル名の表示方法

テンプレートファイル名を取得するには global $template でを使用します。
次のコードは、現在表示しているページで使用しているテンプレートファイル名を表示する方法です。

<?php // 現在使用しているテンプレートファイル名を表示
global $template; // テンプレートファイルのパスを取得
$temp_name = basename($template); // パスの最後の名前(ファイル名)を取得
echo '現在使用しているテンプレートファイル:'.$temp_name; // ファイル名の表示
?>

ログイン中にテンプレートファイル名を表示

常にテンプレートファイル名を表示する場面はそうそうないかと思います。
そのため管理画面にログインしているかどうかを判断して、テンプレートファイル名を表示するようにします。
次のコードは、ログイン中であればテンプレートファイル名を表示する方法です。

<?php // 現在使用しているテンプレートファイルを表示
if (is_user_logged_in()){ // ログイン中なら以下を表示
global $template; // テンプレートファイルのパスを取得
$temp_name = basename($template); // パスの最後の名前(ファイル名)を取得
echo '現在使用しているテンプレートファイル:'.$temp_name; // ファイル名の表示
}
?>

テーマディレクトリ名とテーマファイル名を表示

テーマディレクトリ名を取得する場合は dirname を使用します。
次のコードは、ログイン中にテーマディレクトリ名とテンプレートファイル名を表示する方法です。

<?php // テーマディレクトリ名とテーマファイル名を表示
if (is_user_logged_in()){ // ログイン分岐
global $template; // グローバル変数からテンプレート情報を取得
echo $thema_name = basename(dirname($template)); // テーマディレクトリ名
echo $template_name = basename($template, '.php'); // テーマファイル名
}
?>

テンプレートファイル名を使った条件分岐

テンプレートファイル名を使って条件分岐をする場合は is_page_template() を使用します。
この条件分岐には必ずファイル名を指定する必要があります。
次のコードは、テンプレートファイル名 about.php の場合の条件分岐の方法です。

<?php // テンプレートファイルで条件分岐
if (is_page_template('about.php')){
echo 'about.php を使用しています。';
} else {
echo '使用していません。';
}
?>

サブディレクトリにあるテンプレートファイルの場合は次の通りです。

<?php // 現在使用しているテンプレートファイルを表示
if (is_page_template('templates/about.php')){
-- 省略 --

この is_page_template() はループの外で使用する必要があります。

まとめ

WordPress で現在表示で使用しているテンプレートファイル名を表示する方法を紹介しました。

合わせて読みたい関連記事