MENU

[WordPress] 現在表示しているページのテンプレートファイルを調べる(プラグインなし)

WordPressで作られたサイトで、現在表示されているページが、どのテンプレートファイルを使用しているか調べる方法です。このページのテンプレートを修正したいけど、どのファイルを修正すればよいか分からないよーというときに便利です。

対応プラグインがあるようですが、私はプラグインの入れ過ぎをなるべく避けたいのでプラグインを使わない方法をご紹介します。

この記事はIT女子のお気に入りフォルダで2018年6月に公開していた記事を元にしています。

WordPressには $template というグローバル変数があり、これでテンプレートファイル名を取得することができます。

global $template;
echo '使用テンプレートファイル'. basename($template); 

$template にはファイルまでのパスが入っているので、basename() を使ってファイル名だけを取得すると分かりやすくなります。

これをテーマの共通ファイル(header.phpなど)に記述すれば、現在のページで使用しているテンプレートファイル名を表示することができます。

でも、これだと常に表示されてしまい公開中のサイト等だと具合悪いですよね。ログイン中だけ表示という対応もありますが、デザインによってはヘッダーのレイアウトが崩れたり・・・

そんな時は、ログイン中に表示されている画面上部の管理バーに表示するというのはいかがでしょうか。

/*
 * 現在使用中のテンプレートファイル名を管理バーに表示する
 */
$current_user = wp_get_current_user();  // ログイン中のユーザー情報を取得
if ($current_user->ID === 1 && !is_admin()) { // ユーザーID=1 且つ 管理画面は除く
  function add_admin_bar_template_file_name() {
    global $wp_admin_bar;
    global $template;
    $current_template = basename($template);
    $wp_admin_bar->add_node(array(
      'id' => 'template_file_name',
      'title' => '使用テンプレートファイル : ' . $current_template,
    ));
  }
  add_action('admin_bar_menu', 'add_admin_bar_template_file_name', 500);
}

上記コードをfunctions.phpに記述すると、以下のように表示されます。

この例では、wp_get_current_user()でユーザー情報を取得し、ユーザーIDが1のユーザーにのみ表示するようにしています。

また、!is_admin() で管理画面を除いています。

functions.phpの編集は自己責任でお願いします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次