レスポンシブでTwitter Bootstrapに対応したテンプレートのWright V3を入れてみました。レスポンシブテンプレートについて、こちらの記事「レスポンシブ・デザインのテンプレート」にも書いています。

Wright V4テンプレートが出力するHTMLを編集しました。バグなのか、Wrigt V3に特有な現象なのか、わかりませんが、何故か今までに使ってきたテンプレートと設定方法が違います。多分、バグなのかなぁと思います。

テンプレートでコア出力を上書き(オーバーライド)

管理画面から、記事生成部分のコードのオーバーライドを作成します。

方法は、管理画面のメニューから「エクステンション」→「テンプレート」を選んでテンプレートを選択する画面に入ります。この時「スタイル」が選択されているので、左に現れるメニューから「テンプレート」を選ぶと、現在インストールされているテンプレートがリストアップされます。

この中にある、Wrightを選びます。この中ではテンプレートファイルを編集できますが、ページごとに少しずつカスタマイズできる「スタイル」の設定と異なり、ここでは個別の設定はありません。(条件分岐による個別設定は可能です)

「オーバーライドの作成」を選び、真ん中にある「コンポーネント」の中から、「com_content」を選びます。この中で、個別記事を表示させているファイルは「article」です。クリックするとオーバーライドが作成されます。

エディター画面

オーバーライドを作成したら、「エディター」のタブに戻ります。

作成したオーバーライドは、テンプレートのルートディレクトリから、「html」→「com_content」→「article」とたどると作成されています。オーバーライドを作成したファイルは、作成した日のバックアップが作られています。この、オーバーライドによってリネームされた元ファイル(今回の場合は、「default.php」)を編集することで、テンプレートの挙動を変えることができます。

Wright V3テンプレート

記憶が確かなら、今まで使ってきたテンプレートファイルでは、この「default.php」は元のファイルの単にコピーだったのですが、この「Joomla日記」で使い始めたWrigjht V3では異なるようです。

オーバーライドを作成すると「default.php」の中身は、

<?php
/**
* @package Wright
* @subpackage Overrider
*
* @copyright Copyright (C) 2005 - 2015 Joomlashack. Meritage Assets. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

// No direct access.
defined('_JEXEC') or die;

$app = JFactory::getApplication();

require_once(JPATH_THEMES.'/'.$app->getTemplate().'/'.'wright'.'/'.'html'.'/'.'overrider.php');
include(Overrider::getOverride('com_content.article'));
?>

というPHPファイルになっています。パッケージ「Wright」の「overrider」で作られていますと書かれているので、恐らくWright V3に特有の現象なのかもしれません。

Wright V3のオーバーライド

Wright V3の場合は(もしくは、最新コアの場合は)、編集すべきファイルの場所が通常と違います。

テンプレートのルートディレクトリから「wright」→「html」→「joomla_3.0」→「com_content」→「article」→「default.php」になります。

このファイルの中で、タイトルタグの現れ方を変更します。標準では、記事ページで

<h1>メニュー名</h1>
<h2>記事のタイトル</h2>

という解せない構造になってしまっており、SEO的に最重要視される<h1>ヘッダーが、メニュー名になってしまっています。(ページタイトルになる<title>タグには記事タイトルが設定されています。)

記事内に<h2>タグを使うと記事タイトルと同じ重みになってしまうので、そのまま、記事内では<h3>以降しか使わないのであればよいですが、そうでない場合は書き換えます。

また、そのまま書き換えるだけだと<h1>タグより先に<h2>タグが来てしまいますが、大きな問題はないそうなので、放置しておきます。

どちらがよいか?

テンプレートによって決められていますし、この書き換え方でテンプレートを選ぶこともありませんが、紛らわしいですね。

ただ、他のテンプレートでは恐らくテンプレートファイルのアップデートをした時だと思いますが、変更したファイルが上書きされてしまってなくなったことがあったように思います。そういうことが起らなければ良いのですが。