MediaWikiでHTMLの<head>に共通のメタタグ等を追加する方法

どこに何を記載すれば、分かりづらいMediaWiki。ver1.30でもスキンを容易に変更できるようにはなっていない。なれている人ならば大丈夫だが、WordPressのように柔軟にはいかない事が多い。

ファイルの場所:\skins\Vector\SkinVector.php

※一からスキンを作成したい人には申し訳ないのですが、説明の便宜上、デフォルトスキンのVectorを元にしています

/**
 * Initializes output page and sets up skin-specific parameters
 * @param OutputPage $out Object to initialize
 */
 public function initPage( OutputPage $out ) {
 parent::initPage( $out );

if ( $this->vectorConfig->get( 'VectorResponsive' ) ) {
 $this->enableResponsiveMode();
 }

// Print styles are feature flagged.
 // This flag can be removed when T169732 is resolved.
 if ( $this->vectorConfig->get( 'VectorExperimentalPrintStyles' ) ) {
 // Note, when deploying (T169732) we'll want to fold the stylesheet into
 // skins.vector.styles and remove this module altogether.
 $out->addModuleStyles( 'skins.vector.styles.experimental.print' );
 }

$out->addModules( 'skins.vector.js' );
 }

public function initPage( OutputPage $out )という関数がある。ここで、編集ページや公開ページの初期化を行っているらしい。

メタタグをここに追加する時は、

$out->addHeadItem('meta_author', '<meta name="author" content="戸島健">');

このように追加する。ogpなども適宜、

$out->addHeadItem('og:title', '<meta property="og:title" content="' . $out->getPageTitle() . '">');

とすれば表示される。上記例では、ページごとに値を変更したいので、contentにはgetPageTitle()で取得している。