「MediaWikiにGoogle AdSenseを追加してみた」の版間の差分
Rin-scrooge (トーク | 投稿記録) |
Rin-scrooge (トーク | 投稿記録) |
||
79行目: | 79行目: | ||
<ol> | <ol> | ||
<li>下記のファイルを、エディターなどで開いてね。 | <li>下記のファイルを、エディターなどで開いてね。 | ||
− | < | + | <syntaxhighlight lang="text"> |
【MediaWikiをインストールしたディレクトリ】/skins/Vector.php | 【MediaWikiをインストールしたディレクトリ】/skins/Vector.php | ||
− | </ | + | </syntaxhighlight> |
</li> | </li> | ||
<li>ファイルの中から以下の部分を検索してね。(ちなみに僕のMediaWikiのバージョンでは200行目付近だったよ) | <li>ファイルの中から以下の部分を検索してね。(ちなみに僕のMediaWikiのバージョンでは200行目付近だったよ) | ||
− | < | + | <syntaxhighlight lang="html"> |
<?php if ( $this->data['catlinks'] ) { ?> | <?php if ( $this->data['catlinks'] ) { ?> | ||
<?php $this->html( 'catlinks' ); ?> | <?php $this->html( 'catlinks' ); ?> | ||
103行目: | 103行目: | ||
</div> | </div> | ||
<div id="right-navigation"> | <div id="right-navigation"> | ||
− | </ | + | </syntaxhighlight> |
言葉で表すなら…「<nowiki><div id="bodyContent"></nowiki>」の閉じタグを探してね。 | 言葉で表すなら…「<nowiki><div id="bodyContent"></nowiki>」の閉じタグを探してね。 | ||
</li> | </li> | ||
<li>前出のソースを以下の様に修正するよ。(「xxxx」は伏字だからアドセンスからちゃんと取得してね) | <li>前出のソースを以下の様に修正するよ。(「xxxx」は伏字だからアドセンスからちゃんと取得してね) | ||
− | < | + | <syntaxhighlight lang="html" highlight="10-19"> |
<?php if ( $this->data['catlinks'] ) { ?> | <?php if ( $this->data['catlinks'] ) { ?> | ||
<?php $this->html( 'catlinks' ); ?> | <?php $this->html( 'catlinks' ); ?> | ||
136行目: | 136行目: | ||
</div> | </div> | ||
<div id="right-navigation"> | <div id="right-navigation"> | ||
− | </ | + | </syntaxhighlight> |
言葉で表すなら…「<nowiki><div id="bodyContent"></nowiki>」の閉じタグの後ろに、アドセンスのコードを埋め込むんだよ。 | 言葉で表すなら…「<nowiki><div id="bodyContent"></nowiki>」の閉じタグの後ろに、アドセンスのコードを埋め込むんだよ。 | ||
</li> | </li> |
2019年7月26日 (金) 17:11時点における最新版
MediaWikiにGoogle AdSenseを使って、広告を追加してみたよ。
僕的にページの上部に「ビッグバナー」タイプを、ページの下部に「レクタングル(大)」を追加したかったので、それぞれのやり方について説明するよ。Google AdSenseのやり方はインターネットを検索するとゴロゴロ引っかかるので、そちらを参考にしてね。
目次
JavaScriptを動作できるようにする
Google AdSenseの追加コードをよく見てみると分かるけど、AdSenseのコードはJavaScriptを使っているんだよ。MediaWikiのページにこのコードを貼り付けても動作しないので、MediaWikiにHTMLetsプラグインを導入して、JavaScriptを動作できるようにする必要があるんだ。
以下のHTMLetsのページを参考に導入してみるよ。
- コンソールアプリケーションなどを使って、サーバーにログインしてね。
- 以下のコマンドを実行して、「HTMLets」を展開するよ。
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/HTMLets.git
- LocalSettings.phpの最後に以下の行を追加してね。
require_once "$IP/extensions/HTMLets/HTMLets.php"; $wgHTMLetsDirectory = "$IP/htmlets";
「$wgHTMLetsDirectory」はJavaScriptのソースを置く場所になるよ。好きなところに変更しても良いかもね。
- 手前の手順で「$wgHTMLetsDirectory」に設定したパスにディレクトリを作成するよ。コマンドは以下の通りだよ。
mkdir [作成したいディレクトリ名]
「$wgHTMLetsDirectory = "$IP/htmlets";」と設定した場合は以下の様になるよ。
MediaWikiをインストールしたディレクトリで… mkdir htmlets
これで、JavaScriptを動作させる準備ができたよ。これからの説明は、上記の通りインストールしたことを前提に進めるね。
ページの上部にアドセンスを追加する
手順として、「アドセンスのコードを埋め込んだファイルを作成」「MediaWiki:Sitenoticeを編集」って感じで進めるよ。
アドセンスのコードを埋め込んだファイルを作成
アドセンスのコードを埋め込んだファイルを準備してHTMLetsのフォルダに格納するよ。
- 適当なhtmlファイルを作成して、アドセンスのコードを貼り付けてね。僕は参考サイトにある通り「google_adsense.html」にしたよ。ファイルの中身はこんな感じ…
(「xxxx」は伏せ字だよ。ちゃんとしたコードはアドセンスから取得してね)<script async src="xxxx"></script> <!-- ビッグバナー_728_90 --> <ins class="xxxx" style="display:inline-block;width:728px;height:90px" data-ad-client="xxxx" data-ad-slot="xxxx"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
文字コードと改行文字は、僕の場合「UTF-8」の「LF」のみにしたよ。
- 前出のHTMLetsの「$wgHTMLetsDirectory」のディレクトリにFTP等を使ってアップロードしてね。
MediaWiki:Sitenoticeを編集
「MediaWiki:Sitenotice」はMediaWikiの雛形的ページなんだよ。このページを編集すると、すべてのページに反映されるんだ。
このページを使って、前出の「google_sdsense.html」を呼び出す用に編集するよ。
- MediaWikiの画面の右上の検索ボックスに「MediaWiki:Sitenotice」って入れて検索してね。「MediaWiki:Sitenotice」ってページが表示されるよ。
- 「編集」タブをクリックして、編集モードにしてね。
- 以下の文を入力して「ページを保存」ボタンをクリックしてね。(ページに最初から設定されている「-」(ハイフン)は消しちゃっても大丈夫だよ)
<htmlet>google_adsense</htmlet>
<htmlet>タグの中身は、たぶんファイル名の「.html」を除いた部分だよ。
- 他のページを参照して確認してね。
ページ下部にアドセンスを追加する
ページの下部にアドセンスを追加するためには、MediaWikiのソースを変更する必要があるんだよ。だから、自己責任で試してみてね。
- 下記のファイルを、エディターなどで開いてね。
【MediaWikiをインストールしたディレクトリ】/skins/Vector.php
- ファイルの中から以下の部分を検索してね。(ちなみに僕のMediaWikiのバージョンでは200行目付近だったよ)
<?php if ( $this->data['catlinks'] ) { ?> <?php $this->html( 'catlinks' ); ?> <?php } ?> <?php if ( $this->data['dataAfterContent'] ) { ?> <?php $this->html( 'dataAfterContent' ); ?> <?php } ?> <div class="visualClear"></div> <?php $this->html( 'debughtml' ); ?> </div> </div> <div id="mw-navigation"> <h2><?php $this->msg( 'navigation-heading' ) ?></h2> <div id="mw-head"> <?php $this->renderNavigation( 'PERSONAL' ); ?> <div id="left-navigation"> <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?> </div> <div id="right-navigation">
言葉で表すなら…「<div id="bodyContent">」の閉じタグを探してね。
- 前出のソースを以下の様に修正するよ。(「xxxx」は伏字だからアドセンスからちゃんと取得してね)
<?php if ( $this->data['catlinks'] ) { ?> <?php $this->html( 'catlinks' ); ?> <?php } ?> <?php if ( $this->data['dataAfterContent'] ) { ?> <?php $this->html( 'dataAfterContent' ); ?> <?php } ?> <div class="visualClear"></div> <?php $this->html( 'debughtml' ); ?> </div> <br/> <script async src="xxxx"></script> <!-- AdSense_300_250 --> <ins class="xxxx" style="display:inline-block;width:300px;height:250px" data-ad-client="xxxx" data-ad-slot="xxxx"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div id="mw-navigation"> <h2><?php $this->msg( 'navigation-heading' ) ?></h2> <div id="mw-head"> <?php $this->renderNavigation( 'PERSONAL' ); ?> <div id="left-navigation"> <?php $this->renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?> </div> <div id="right-navigation">
言葉で表すなら…「<div id="bodyContent">」の閉じタグの後ろに、アドセンスのコードを埋め込むんだよ。
- 保存して、アドセンスが表示されているかページを確認してみてね