WordPress 更新しても上書きされないテーマのカスタマイズ方法

先日、WordPressを使っているブログで「テーマがバージョンアップされる度にスタイルシートを書き直している」という方がいたのですが、それは非常にムダだと思うわけです。

次の手順でカスタマイズすれば、WordPressのテーマが更新されても、自分で変更した部分は上書きされずに維持できます。

WordPressのカスタマイズとは

WordPressのカスタマイズとは、拡張する事と思ってください。

その「拡張」とは、プラグインやテーマを使って行ないます。WordPress本体をアップデートしても、自分で追加したプラグインやテーマはWordPress本体とは別物なので、本体をアップデートした後も変わりません。

もし、プラグインなどを使わずにWordPress本体を直接書き換えた場合、WordPressを更新すると、変更した箇所も含めて上書きされてしまいます。

同じように「テーマ」も、テーマそのものを直接書き換えると更新時に上書きされてしまいます。

そうならないためには、独自に改変した部分だけを別ファイルに保存しておいて、後から読み込むようにすれば「テーマ」本体のアップデートに関係なく維持されます。

テーマのスタイルシートを拡張する

まず、スタイルシートだけを独自に書き替えてみましょう。

具体的には次のように行ないます。これはWordPress Codexの「子テーマ」というページで説明されています。

今回は、Twenty Fourteenを「親テーマ」にして、「子テーマ」を作ってみます。自分が拡張したいテーマに置き代えて読み進めてください。

親テーマの確認

子テーマを作る前に、自分のサーバーで「親テーマ」の保存場所を確認しておきます。

サーバー上の wp-content/themes の中に twentyfourteen というディレクトリ(フォルダ)があります。これが「Twenty Fourteen」のテーマファイル群です。

サーバー上のイメージ
wp1

そのディレクトリの名前「twentyfourteen」を確認したら、「子テーマ」の作成にかかります。

これは、あくまで Twenty Fourteen を親テーマに選んだ場合ですので、自分が拡張したいテーマのディレクトリ名を確認してください。

子テーマの作成

まず、自分のパソコンでディレクトリ(フォルダ)をひとつ作ります。

名前は好きに付けていいですが「私のTwenty Fourteen」などと、漢字やひらがな、カタカナを使ったり、スペースを空けたりしないで半角英数字だけでつけるようにします。今回は「watashi-no_Twenty14」という名前にしました。このように半角の – (ハイフン) や _ (アンダーバー) 大文字、小文字、数字は使えます。ただし、無理に使う必要はないので、基本的には半角アルファベットの小文字と数字だけでつけたほうが無難です。

wp2

次にメモ帳で新しいファイルを作り、次のように書きます。

/*
Theme Name: 私のTwenty Fourteen
Template:   twentyfourteen
*/

@import url('../twentyfourteen/style.css');

これを「style.css」という名前で、先ほど作ったディレクトリ(フォルダ)「watashi-no_Twenty14」の中に保存します。名前は必ず「style.css」です。

これで「watashi-no_Twenty14」というフォルダの中に「style.css」というファイルがひとつだけある状態になっています。

では「style.css」の中に書いた事を説明します。

1〜4行目

このファイルは、拡張子が .css である通り、スタイルシートです。1行目の /* と4行目の */ はスタイルシートのコメントアウトです。

コメントアウトとは反映されない注釈部分で、コンピュータには反映されませんが人間がわかるよう説明を書いておく時に使います。

なので、/* から */ まではスタイルシートのデータとしては反映されません。それを利用して、この中にWordPress専用の情報を書いています。スタイルシートには反映されず、WordPressにだけ反映されるデータ部分が2〜3行目です。

Theme Name: 私のTwenty Fourteen
Theme Name: の後が拡張されたテンプレートの名前です。自分の好きな名前を書きます。
日本語も使えることを示すために、あえて日本語を使っていますが、オススメはしません。半角英数字で書いた方が無難です。
名前にはスペースキーを押した時の空白文字も使えますが、改行しないで一行の名前にします。
Template: twentyfourteen
Template: の次に来るのは、先ほど調べた「親テーマ」のあるディレクトリ(フォルダ)の名前です。
今回はTwenty Fourteenを例にしているので「twentyfourteen」ですが、自分の継承したい親テーマのディレクトリ名を書き込みます。

Theme Name: と Template: の直後に半角スペースをつけていますが、これは見やすくしているだけで、何個つけても同じです。なくてもよく、次のように書いても構いません。

/*
Theme Name:私のTwenty Fourteen
Template:twentyfourteen
*/

ここまで説明した、Theme Name: と Template: の行が「子テーマ」の情報に絶対に必要なデータです。テーマを一般公開する場合は、他にも次のような情報を書きますが、自分で使うだけなら Theme Name: と Template: だけで大丈夫です。

子テーマ – WordPress Codex 日本語版」より

/*
Theme Name:     Kid
Theme URI:      http://example.com/
Description:    Child theme for the Twenty Ten theme for WordPress
Author:         Demetris
Author URI:     http://example.com/about/
Template:       twentyten
Version:        0.1.0
*/
  • Theme Name (必須) 子テーマ名
  • Theme URI (任意) 子テーマのウェブページ
  • Description (任意) テーマの説明。例: わたしの最初の子テーマ。ワーイ!
  • Author URI (任意) 作者のウェブページ
  • Author (任意) 作者の名前
  • Template (必須) 親テーマのディレクトリ名, 大文字小文字を区別します
  • Version (任意) 子テーマのバージョン。例: 0.1, 1.0, etc

@import url(‘../twentyfourteen/style.css’);

この行は、WordPressではなくスタイルシートの記述部分です。

@import url(‘../twentyfourteen/style.css’); で、親テーマのあるディレクトリから style.css を読み込んでいます。この行がないと親テーマのスタイルシートは読み込まれません。スタイルシートを完全に一から自作するなら別ですが、そうでない場合は必須です。

赤字の部分は、自分の継承したい親テーマのディレクトリ名を書きます。つまり、Template: の行に書いたのと同じディレクトリ名です。

サーバーへアップロード

ここまで出来たら、作ったディレクトリ「watashi-no_Twenty14」とスタイルシート「style.css」を、サーバーにアップロードします。

FTPでアップロードするのではなく、ファイルマネージャーでサーバー上に新規作成する方法は「ロリポップサーバーのFTPにWordPressのファイルを簡単にアップロード | Area5.net  Arisaya blog」に書かれています。

アップロード先は、親テーマ Twenty Fourteen と同じ wp-content/themes です。

wp-content/themesの中に、親テーマ「twentyfourteen」と、子テーマ「watashi-no_Twenty14」の両方があるようにアップロードします。そして「watashi-no_Twenty14」の中にstyle.cssが入っている状態です。

サーバー上のイメージ
wp3

自作した子テーマを適用させる

アップロードが終わったら、WordPressにログインしてダッシュボードの「外観」» 「テーマ」と移動して「テーマの管理」ページを開きます。

ここまでの作業にミスがなければ、テーマの一覧の中に「私のTwenty Fourteen」があるはずです。

wp4

「私のTwenty Fourteen」にはサンプル画像が表示されていませんが、サンプル画像を作っていないからです。そのままで問題はありません。

「私のTwenty Fourteen」が表示されている場所にマウスを乗せると「有効化」と表示されますので、その「有効化」をクリックします。

wp5

問題がなければページの上の方に「新しいテーマを有効化しました。サイトを表示する」と表示されるのでサイトを表示してみます。

wp6

サイトが有効化されないとしたら、ここまでの手順のどこかを間違えています。

サイトを表示して、素のままの何も変更されていない「Twenty Fourteen」が表示されていたら成功です。何故でしょうか。だってまだ何もカスタマイズしていないからです。では、スタイルシートを改変してみましょう。

wp7

自作スタイルシートの追加

ここまで出来たら「子テーマ」は完成されています。ただ、まだ何も独自部分がないので親テーマと全く同じ状態です。

今からやる手順でスタイルシートを書けば今後はテーマの更新に影響されずに、拡張部分を維持できます。

独自のスタイルシートは、先程自分で作った style.css の続きに書きます。

Twenty Fourteenの背景色を変更する

今回は試しに子テーマを、親テーマと違う背景色に変更してみます。

style.css にすでに書きこんである部分はそのまま変更せずに、その後に独自のスタイルシートを書き込みます。

/*
Theme Name:私のTwenty Fourteen
Template:twentyfourteen
*/

@import url('../twentyfourteen/style.css');

::selection,
.search-toggle:before,
*{
	color: #444!important;
}

.primary-navigation li:hover > a,
.primary-navigation li.focus > a,
::selection,
.search-toggle,
.search-toggle:hover,
.search-box,
.site-info a,
.site-footer,
.grid .featured-content .entry-header,
#featured-content,
#masthead,
.content-sidebar,
#secondary,
#page:before{
	background: #fff;
	border: none;
}

Twenty Fourteenの背景色の変更はWordPress › フォーラム » Twenty Fourteen サイドバーの背景変更を参考にしました。

サーバーの自作「子テーマ」のディレクトリ「watashi-no_Twenty14」にある style.css を上記のように変更したら、もう一度サイトを表示してみます。無事に色が変わっていれば成功です。

wp8

スタイルシートを変更したい場合、今後は「親テーマ」をいじらずに、「子テーマ」の style.css だけを変更するようにします。そうすれば「親テーマ」が更新されても影響される(上書きされる)心配はありません。

スタイルシート以外の変更

スタイルシート以外を変更する場合は、その変更したいファイルを「子テーマ」にコピーして、そのコピーしたファイルを変更します。

例えば、header.php を変更したい時は、header.php だけを親テーマから子テーマへコピーして、それを書き替えます。

子テーマと親テーマに同じ名前のファイルがある時は、子テーマのファイルが適用され、子テーマにないファイルは全て、親テーマのものが読み込まれます。

style.css と同じように親テーマが更新されても、子テーマのファイルは上書きされてしまうことなく残っていますので、カスタマイズした部分は常に適用されます。

WordPressで勝手にaddslashesされてバックスラッシュがついてしまう件

この記事を書いた際のWordPressのバージョンは3.9.1です。

バージョン5.4.0以前のPHPでは、magic_quotesがONに設定されていると、POSTやGETで送ったデータの中にある全ての ' (シングルクオート)、 " (ダブルクオート)、 \ (バックスラッシュ)、NULL文字の4つに自動的にバックスラッシュがついてエスケープされます。

バージョン5.4.0から削除されたんですが、まだそれ以前のPHPは多いです。

そこで、get_magic_quotes_gpc関数で、magic_quotesがONかOFFか判別して、ONの場合にはstripslashesを使ってバックスラッシュを削除します。

if(get_magic_quotes_gpc()){
    $hoge = stripslashes($_POST['hoge']);
}else{
    $hoge = $_POST['hoge'];
}

ところが、今作っているプラグインで、この作業をしてもPOSTで送ったtextareaのデータにバックスラッシュがついたまま消えません。しかも、テスト環境のmagic_quotesはOFFなのにです。

調べたところ、「POST送信時にバックスラッシュが付加される現象: wordpressメモ」というページを見つけました。

結論を書くと、WordPressを使っているとmagic_quotesの設定は関係なく、$_GET,$_POST,$_COOKIE,$_SERVERの4つは、必ずaddslashesされてバックスラッシュがつきます。

詳細は「POST送信時にバックスラッシュが付加される現象: wordpressメモ」に書いてあるとおりなんですが、wp-includes/load.phpに、wp_magic_quotesという関数があります。

ここで、上記のget_magic_quotes_gpc関数で、magic_quotesが有効になっているか調べ、ONの場合にはstripslashesを使ってバックスラッシュを削除しています。

そして、それで終わらずに、add_magic_quotesという関数を実行しています。

function wp_magic_quotes() {
	// If already slashed, strip.
	if ( get_magic_quotes_gpc() ) {
		$_GET    = stripslashes_deep( $_GET    );
		$_POST   = stripslashes_deep( $_POST   );
		$_COOKIE = stripslashes_deep( $_COOKIE );
	}

	// Escape with wpdb.
	$_GET    = add_magic_quotes( $_GET    );
	$_POST   = add_magic_quotes( $_POST   );
	$_COOKIE = add_magic_quotes( $_COOKIE );
	$_SERVER = add_magic_quotes( $_SERVER );

	// Force REQUEST to be GET + POST.
	$_REQUEST = array_merge( $_GET, $_POST );
}

この、add_magic_quotesは何かというとWordpressの独自関数で、実体はwp-includes/functions.phpにあります。

この中で、addslashes関数を使って、$_GET,$_POST,$_COOKIE,$_SERVERの全てのデータをエスケープしています。

function add_magic_quotes( $array ) {
	foreach ( (array) $array as $k => $v ) {
		if ( is_array( $v ) ) {
			$array[$k] = add_magic_quotes( $v );
		} else {
			$array[$k] = addslashes( $v );
		}
	}
	return $array;
}

wp_magic_quotes関数はどこで呼び出されているかというと、wp-settings.phpの242行目です。(バージョン3.9.1の場合)

なのでWordPressを使う場合は、magic_quotesの設定に関係なく、stripslashesが必要でした。

これがわかるまで随分ハマりました。「POST送信時にバックスラッシュが付加される現象: wordpressメモ」を書かれた方には感謝です。

VirtualBoxでWordPressとLinuxを試すセットアップ済みお試しキット

VirtualBoxで動くサーバーシステム一式の、セットアップ済Linuxイメージファイル(vdi)を作りました。ご自由にお使いください。

ただしファイルサイズが大きいです。圧縮していますが、ダウンロードサイズは2.3GBもあります。さらに解凍すると7.9GBになります。回線の混み具合にもよりますがフレッツひかりでダウンロードに30分~1時間、古いパソコンだと解凍にも20~30分かかります。

VirtualBoxで作る仮想サーバー

VirtualBoxというのは、WindowsでもMacでも動く無料のエミュレーターソフトです。下の図のようにOSの中で別の仮想パソコンを動かします。

これは、メモリー768MBの10年前のパソコンでWindows XPを動かし、さらにその中で別のWIndows XPを動かしている図です。

Windows XPの中で別のXPを起動

パソコンの中にパソコンを作って何がうれしいいのかと思われるかもしれません。基本的にはなくてもいいソフトです。でもこれを使うと1台でこんなことが出来ます。

仮想サーバー・クライアントシステム

インターネットでは、ブログを置いてあるサーバーとブログを読むパソコンやスマホは別のものです。サイトのデータはそれを見ているマシンではなくレンタルサーバーに置いてあります。

もし自宅にサーバーを作ろうとしたら、パソコンがもう1台必要になります。

でもVirtualBoxを使えば、VirtualBoxそのものをインストールする以外は、Windowsに一切手を加えることなくWordPress用のサーバーシステムを1台のパソコンで動かせます。

WordPressを試す

今、無料のサービスを使ってブログを書いている人が、「ワードプレスってよく聞くから気になる。ちょっと試してみたい」と思っても、実際に試すのはなかなか難しいものです。

無料で使えるwordpress.comなどはマルチサイトでシステムを構築しています。WordPressのマルチサイトは同じファイルをみんなで使いまわすので、テーマ(スキン)の改造が自由にできません。同じテーマを使っている他の人までデザインが変わってしまうからです。

だからWordPressでサイトを作る場合、サーバーを借りて自分でインストールしないと自由は効きません。

有料サーバーを借りてWordPressに乗り換えるのもいいかもしれないけど、本当にそこまでするほどのものなのか?と考えているブロガーは多いと思います。自宅に仮想サーバーを作れば初期費用なしで試すことができるので使ってみた上でブログの移転をするかしないか決めればいいわけです。

Linux Mint Debian Editionを試す

仮想のパソコンが増えるのだから別のOSが入れられます。というか入れないと動きません。今回、サーバーを作るのに使ったOSはフリーで配布されているLinux Mint Debian Editionです。

もうすぐWindows XPのサポートが切れるので乗り換えが必要ですが、今使っているパソコンにはWindows 7も8も入らないという方は多いと思います。パソコンを買い換えるのはいいけれど、このPCはどうしよう?というお悩みもあるでしょう。

Linux Mint Debian Edition

そんな最新のOSが入らなくても、今使っているパソコンは動きます。マシンに対応したOSに入れ替えればまだ使えます。ではどんなOSがあるでしょう。Linux Mintもそのひとつ。我が家の旗艦マシンは次のスペックです。これにLinux Mintを入れて日常使用していますが、それほど困ることはありません。Officeのようなソフトまで含めてはじめからいろいろ入っています。

*注: この記事で説明するとややこしくなるので省きますがデュアルブートでOSを使い分けています。

我が家のフラッグシップマシン
富士通 FMV DESKPOWER CE22D (2003年産)
CPU : AMD Athlon™XP プロセッサ 2200+
メモリ : 768MB

知らないOSにいきなり乗り換えるのは怖い。という場合にもこれで試せます。ただ、本当のパソコンにインストールして動かすのに比べ遅くなります。1台のパソコンのスペックで2台同時に動かすので仕方ありません。

冒頭で紹介したWindows XPの中で別のXPを動かした場合、我が家のフラッグシップマシンではまったく違和感なく普通の速度で快適に動きました。ところがLinux Mint Debian Editionではもたつきます。

同じパソコンでVirtualBoxを使わずにネイティブでLinux Mintを起動すれば1分かからずに使えるようになりますが、エミュレータで起動すると10分くらいかかります。

ただしVirtualBoxにはバーチャルマシーンを起動したままの状態で保存できるという機能があります。詳しいことはこの記事の終わりに書いていますが、本物のパソコンを終了しても、バーチャルのマシンは起動している状態で保存されているので次の起動は数秒で終わります。というか、はじめから起動しているのでそこから再開するという形です。

ネイティブよりこんなに遅いのは下記のサーバーシステムを起動させているからというのもあります。XPからの乗り換えの検討で動かす場合、その部分をご了承ください。

セットアップ済みサーバーシステム一覧

VirtualBox Guest Additionsはインストール済です。

  • apache2(Webサーバー)
  • MySQL (データベースサーバー)
  • vsftpd (FTPサーバー)
  • OpenSSH(SSHサーバー)
  • samba (Windows用ファイル共有)
  • NFS (Linux用ファイル共有)
  • Postfix(メール送信サーバー WordPressからのメール専用)
  • Dovecot(メール受信サーバー WordPressからのメール専用)

もちろんPHPもインストール済みで、設定内容 phpinfo() はセットアップが終わると見ることが出来ます。

WordPressのインストールは終わっていて、ブログ名、ユーザー名、パスワードを決めるだけで始められます。そうではなくセットアップそのものも自分で試したいという場合のやり方は別に書きます。

配布するのはOSのイメージファイルだけなのでVirtualBoxのダウンロードとインストールは別途必要です。それは、特に難しいこともなくダウンロードからインストールまで含めて10分ほどで終わります。

バーチャルボックスのダウンロードとインストール

VirtualBoxはOracleが無償で提供しているエミュレーションソフトで、だれでも自由にダウンロードして使うことが出来ます。

VirtualBoxのダウンロードとインストールは10分ほどで出来るので、イメージファイルをダウンロードしながら待っている間に作業するのがいいと思います。イメージファイルのダウンロード方法はこの次の項目で書いています。

まず、Oracle VM VirtualBoxのページを開きます。

Oracle VM VirtualBoxホームページ

ページの左のメニュー、上から3番目のDownloadsをクリック。すると開いた画面に次の場所があります。Windowsなら「VirtualBox 4.3.6 for Windows hosts x86/amd64」と書かれている行の「 x86/amd64」をクリックしてダウンロードを開始します。

Oracle VM VirtualBoxダウンロードページ

ダウンロードするのはこれだけで、「VirtualBox 4.3.6 Oracle VM VirtualBox Extension Pack」と「VirtualBox 4.3.6 Software Developer Kit (SDK)」は不要です。

ダウンロードが済むと次のアイコンが表示されますのでクリック。vb3

「このファイルを実行しますか?」の画面で実行をクリック。

vb4

少し待つとSetup Wizardが始まるので「Next >」をクリック。

vb5

Custom Setupはなにもいじらずに、そのまま「Next >」をクリック。

vb6

デスクトップにアイコンが不要なら「Create a shortcut on the desktop」のチェックを削除。あとは、そのままクリック。

vb7

赤文字で「Warning: Network Interfaces」と表示されますがネットワークをいじりますという表示です。仮想LANケーブルを追加してインターネットにつながるようになります。そのまま「Yes」をクリック。

vb8

「Install」をクリックしてスタートさせます。

vb9

インストールがはじまります。

vb10

途中何回か以下のようなマイクロソフトからの警告メッセージが出ます。同じ警告が何回も出ますが、これはネットワークを改変していることとマイクロソフトの審査を行っていないソフトウェアだという警告です。無視して構いません。「続行」をクリックします。

vb11vb12

インストールが終わると、次の画面になります。そのまま「Finish」をクリック。

vb13

インストールが成功するとVirtualBoxが起動します。次の画面が出たら完了です。

vb14

イメージファイルのダウンロード

LinuxもDebianもGPLライセンスなので再配布可能だという考えでサーバーに置いていますが、もし問題がある場合ご指摘いただければ幸いです。

イメージファイルのダウンロードはここをクリックすると落とせます。時間がかかるので、落としている間にVirtualBoxのインストールをするのがいいと思います。

サーバーを作るだけの目的なら必要ないソフトもたくさん入っています。なるべく軽いものにしたかったのですが、あまり機能を重視して無用なものを省くとLinuxに慣れてない人がとまどうだろうと思いWindowsに似ていて、かつ使いやすい物にしました。

そういう意味で、作ったイメージファイルにはサーバー用途以外にも使えるソフトがいろいろ入っていますが、結果としてダウンロードサイズが大きくなってしまいました。

そんなに大きなファイルを落とすくらいなら、はじめから自分でVirtualBoxにインストールしたい。という考えはごもっともです。これは今回作ったイメージファイルの反省点です。ということで、Linux Mintを自分でインストールする方法は別のページに説明記事を作ります。

イメージファイルの展開(解凍)

ダウンロードしたファイルはZIP形式で圧縮されています。ZIPはWindowsで標準サポートされている形式なので使ったのですが、Windows XPで展開しようとしたらエラーが出て失敗しました。ファイルのサイズが大きいのが原因ではないかと思います。もし、すでに自分でファイル解凍ソフトを入れている場合はそれで解凍してください。

Windowsの標準システム以外のフリー解凍ソフトでも、ものによってはサイズオーバーでエラーが出ます。

私がファイルの展開で使ったのはLhaz v2.1.3です。ちとらソフトのページから「圧縮解凍ソフト“Lhaz”」をクリックし、開いたページの下、旧版ダウンロードにあります。その他に試してみたら「無料圧縮・解凍ソフトCubeICE」と「WinZip」でも大丈夫でした。WinZipは有料ですが、45日間無料で試用することができる体験版がダウンロードできます。

VirtualBoxでLinux Mint Debian Editionを動かす

イメージファイルの解凍が終わったら、VirtualBoxにセットします。

VirtualBoxを起動したら、左上にボタンが並んでいます。その中の「新規(N)」をクリック。

vblmde1

名前とオペレーティングシステムを指定します。名前は何でも構いませんが「Linux Mint Debian Edition」と入力すると自動でタイプとバージョン欄に入力してくれます。名前を他のものにする場合は、手動でタイプとバージョンを入力してください。タイプは「Linux」、バージョンは「Debian」です。

vblmde2

入力が終わったら「次へ(N)>」をクリック。次の画面でメモリーをいくら割り当てるか指定します。自動で適正値が入力されているのでそのままでも構いません。うちのフラッグシップでは384MBもバーチャルマシンに与えられないので256MBに変更しています。

vblmde3

ハードドライブはダウンロードしたイメージファイルを使うので「すでにある仮想ハードドライブを使用する(U)」を選択して、ダウンロードしたファイルを指定します。

vblmde4

「すでにある仮想ハードドライブを使用する(U)」を選択するとその下に登録済みの仮想ハードドライブ一覧が表示されますが、まだ登録していませんので、その右のフォルダのマークをクリックします。

vblmde6

すると下のように選べる画面が出るので、ダウンロードしたファイルを指定します。登録する前にマイドキュメントなどにファイルを移して、置き場所は決めておいたほうがいいです。

vblmde5

仮想ハードドライブを選択すると開いていた選択画面が消え、VirtualBoxのメインウインドウだけが残ります。画面の左に電源オフの状態でLinux Mintが表示されていればOKです。

vblmde7

続いて「設定」ボタンを押します。

vblmde8

表示された画面の左側にある項目の一覧から「ネットワーク」を選択します。そして右側の画面から「アダプター2」をクリック。「ネットワークアダプターを有効化(E)」にチェックを入れます。「割り当て(A)」が選べるようになるので「ホストオンリーアダプター」を選択して、OKを押します。

「名前」など、それ以外のものは一切いじらないで大丈夫です。

vblmde9

これで設定は終わりました。「起動(T)」ボタンを押してください。

vblmde8

VirtualBoxの中で「Linux Mint debian Edition」が動き出します。

vblmde10

起動の途中で「ユーザー名」と「パスワード」を入力しないとログインできません。「ユーザー名」入力画面になったら「user」の4文字を入力してキーボードのEnterキーを押します。次の画面で「パスワード」を入力しますがパスワードも「user」の4文字で登録しています。「user」と入力してEnterを押してください。

vblmde11

ログインすると「Linux Mint へようこそ」と表示されます。「起動時にこのダイアログを表示する」のチェックを外せば2回目以降は表示されません。

vblmde12

起動が完了すると下のデスクトップ画面になります。

vblmde100

メニューボタンが表示されないときは

非力なマシンだと処理が追いつかず、左下のメニューボタンが表示されないことがあります。下のように表示された時は「削除しない」をクリックしてください。

m1

そして、画面下のメニューバーの上で右クリックして、メニューを表示させます。その中の「パネルへ追加」をクリック。

m2

「パネルへ追加」というウインドウが開いたら「mintMenu」を選択してから、下のボタン「追加」を1回だけクリック。そのままではウインドウが表示されたままなので「閉じる」もクリックします。

m3

メニューバーに「Menu」ボタンが追加されますが、左端と真ん中あたりの2ヵ所に出来ています。「追加したMenuボタン」は真ん中のものです。左端のは、もともとあった「出なかったMenuボタン」です。起動時には出なかったけど、追加したメニューボタンを表示するはずみで出てきました。真ん中のMenuボタンはもう不要なので右クリックして表示された項目にある「パネルから削除(R)」を押して消してください。

m4

終了方法

では、さっそく終了してみましょう。

使い方は次回書きます。

menu

普通に左下の「Menu」をクリックして開いたメニューから「終了」を選択してもいいです。

終了をクリックするとWindowsと同じように選択ボタンが表示されるので「シャットダウン(S)」を押せば終了します。

menu2

起動している状態を保持したままバーチャルサーバーを終了させる

あるいは、先ほど書いたように起動状態のまま終了させることもできます。

左上にある、コンピューターではなくVirtualBoxのメニューバーから「仮想マシン」をクリックし、出てきたメニューのいちばん下にある「閉じる」をクリック。

c1

次のウインドウで「仮想マシンの状態を保存(S)」を選択して「OK」をクリック。

c2

「電源オフ」ではなく「保存」という状態でバーチャルマシンが終了します。

c3

「保存」状態のバーチャルマシンが起動できなくなったら

下の図のウインドウが出て起動できないときは次のようにしてください。

close_ex

VirtualBoxの画面左から起動できないOSを選び右クリックします。出てきたメニューから「保存状態を破棄(I)」をクリック。

close_ex2

「以下の仮想マシンの保存状態を破棄しますか?」と表示されるので「破棄」をクリック。

close_ex3

あとは通常通りに起動します。

次回は使い方を説明します。

ファンブログからWordPressにデータを完全移行するスクリプト

2014年1月22日にA8.netのファンブログはSeesaa Blogのシステムをベースにして生まれ変わりました。現在ではこの方法は不要でファンブログに基本装備されたエクスポートが使えます。その、新しい方法についての詳細は「無料ブログからWordPressへデータを移動する手順」に書いていますので、そちらをご覧ください。

ファンブログからWordPressにデータを完全移行するスクリプトを書きました。

サンプルとして、WordPress側のテンプレートは完全デフォルトのまま、移行したこのブログの記事を次のサイトで公開しています。(入っているのはこの記事のひとつ前の記事までです。)

http://idobata.cocorodesign.net/escape/

適切な設定だけすれば、自動で以下の事をやってくれます。ダウンロード中に接続が切られると、自動で再接続して再開します。

  1. ファンブログのサーバーから「下書き」を含む、すべての記事のダウンロード
  2. 投稿されたすべての「コメント」データのダウンロード
  3. 投稿されたすべての「トラックバック」データのダウンロード
  4. ファンブログのサーバーから記事で使っていないものを含む、すべての画像ファイルのダウンロード

追記:現在はコメントとトラックバックの取得数はゼロになり、取得されません。それは、ファンブログのサーバーが公開していない結果なので、正常な動作です。

また、WordPress側の新しいブログにアップロードする際、次の事も自動で行います。

  • 記事で使っているすべての内部リンクのURLをWordPressにアップした新しいURLに書き変え
  • 記事で使っているすべての画像ファイルのURLをWordPressにアップした新しい画像URLに書き変え

ただし、内部リンクへ対応する代わりにWordPressのパーマリンク設定を「数字ベース」または「デフォルト」にする必要があります。

書き変えるのは内部リンクだけです。http://fanblogs.jp/自分のURL/を含むリンクは、すべて自動で書き変えますが、下のように本文中に書いてあるURLは書き変えません。

こういう風に、リンクでないURLは書き変えません。
このブログの、旧URLは、http://fanblogs.jp/ayzfqir5/です。

ファンブログの独自タグには対応していません。ご了承ください。(追記:対応しました
ファンブログのエディタの注意点

ファンブログのサーバーから「下書き」を含む、すべての記事のダウンロードで取得するのは次の項目です。

  • ページ番号(http://fanblogs.jp/hoge/archive/xxx/0 の xxx の数字)
  • タイトル
  • カテゴリー名
  • 投稿年月日時間
  • 記事本文
  • 記事追記部分
  • 記事の概要
  • 公開/下書きの区分

投稿されたすべての「コメント」データのダウンロードで取得するのは次の項目です。

  • コメントが投稿された記事のページ番号
  • 投稿年月日時間
  • 投稿者名
  • 投稿者のURL
  • 投稿者のメールアドレス
  • コメントの発信元IPアドレス
  • コメント本文

投稿されたすべての「トラックバック」データのダウンロードで取得するのは次の項目です。

  • トラックバックが投稿された記事のページ番号
  • 投稿年月日時間
  • トラックバックされた、相手の記事のタイトル
  • 投稿されたトラックバックのURL
  • 投稿されたトラックバックのブログ名
  • 投稿されたトラックバックの発信元IPアドレス
  • トラックバック本文

詳細は「ファンブログからWordPressへすべてのデータを移動する手順」をご覧ください。

姐さんのスクリプト活用リポート「WordPress完全移行スクリプトキタ-!」も参考にしてください。
残念ながらこの方法を実行するには、それなりのスキルが必要です。簡単にバックアップを取りたければ、次の方法を試してください。Windowsでファンブログの全記事バックアップスクリプト

その他の移行方法

このスクリプトはWordPressに移行するためのものですが、他の方法がこちらで公開されています。
ドメイン以下のURLを完全に保持しながら無料ブログから移転する方法・予告

どちらの方法も一長一短ありますが、比較をするとこうなります。

このページのスクリプト

  • スクリプトを動かす環境構築が難しい
  • その代わり、スクリプトが動きさえすれば、割とスムーズに移行できる。
  • リンクの張替え全自動
  • WordPressに変換後、MT形式に再変換すれば
    FC2やlivedoorブログなど、大部分のブログに移行可能
    (独自ドメインがいらない)
    MT形式がターゲットなら、下の追記の方法の方が手間は少ないです

ドメイン以下のURLを完全に保持しながら無料ブログから移転する方法

  • 導入が比較的簡単
  • リンクの張替えは、別作業で必要
  • 同じルックスが維持できる(ヘッダ画像などの著作権には注意すること)
  • 独自ドメインが必要

導入が比較的簡単と書きましたが、このページのスクリプトに比べてです。どちらを使うにしても、「とても簡単」というわけにはいきませんので、ご了承ください。

追記:MT(MovableType)形式への移行方法

という方法もあるようです。タイトルでは、さくらのブログ・Seesaaブログとだけ書いてありますが、どちらの記事もMT形式すべてに対応できそうです。

WordPressマルチサイトでエラー! "The site you have requested is not installed properly."

WordPressを使って、マルチサイトにしていたブログが突然アクセスできなくなった。正確にはサーバーとはアクセス出来ている。ただしブラウザには、ブログではなく、こんなメッセージが表示される。

The site you have requested is not installed properly. Please contact the system administrator.

Googleの翻訳にかけるとこういう意味だ。「あなたが要求したサイトが正しくインストールされていません。システム管理者に連絡してください。」

ふざけるな。俺がシステム管理者なんだよ!

WordPressのマルチサイトだけに起こるエラー

調べたところ、これはマルチサイト特有のエラーらしいです。もっとも参考になったのは「Labor Of Love – Laughing Out Loud」さんの記事。

とりあえず、PhpMyAdminで、全テーブルにチェックを入れ「テーブルを最適化」。
上手くいきました。元通り、エラーなく表示することができました。

早速、テーブルの最適化をやってみます。ただし、PhpMyAdminは入れていないのでコマンド処理。-u の後のuser_nameにユーザー名、database_nameにデータベース名を入れます。

mysqlcheck -o -u user_name dabatabe_name -p

こう入力してEnterを押すと「Enter password:」と表示されるので、パスワードを入力して、もう一度 Enter。するとテーブルの最適化が始まります。

xxxxxxxxxx.wp_blog_versions                   Table is already up to date
xxxxxxxxxx.wp_blogs                           OK
xxxxxxxxxx.wp_bp_activity                     OK
xxxxxxxxxx.wp_bp_activity_meta                OK
.............(省略)

最適化は数秒で終了。早速ブラウザをリロード!無事にブログが表示されました。

そういえば今年に入って、これとは別のマルチサイトでアクセス不能になったことがあります。その時はログイン出来たので違う原因かもしれませんが、スパムを全部削除したら直りました。データベースはマメに整理した方が良さそうです。

うちのブログはまだ、復旧しただけですが「Labor Of Love – Laughing Out Loud」さんの記事には再発防止のための対策も書かれています。

WordPressでファンブログのアバター表示プラグイン

2014年1月22日にA8.netのファンブログはSeesaa Blogのシステムをベースにして生まれ変わりました。よってファンブログ関連の記事は今では当てはまらない可能性があります。新しいファンブログのカスタマイズは別ブログ「ファンブログ テック」で詳しく書いていますので、そちらをご覧ください。

WordPressでファンブログのURLを入れてコメントするとファンブログのアバターが表示される
pluginを書きました。

すごい簡単に出来てしまった。さすがワードプレス!

今、新しいブログ秘密倶楽部 Kで使っています。
以下、ソース全文です。

<?php
/*
Plugin Name: get_fanblog_avatar
Version: 1.0
Author: Tom
Author URI: http://club-k.dwm.me/
License: GPL2
*/

function get_default_avatar($avatar,$id_or_email){
	$comment_data=get_comment($id_or_email);
	$match=NULL;

	return preg_match('|fanblogs\.jp/(.+?)/|',$comment_data->comment_author_url,$match)?
		preg_replace('/src=("|\').+?("|\')/','src="http://fanblogs.jp/'.$match[1].'/file/profile"',$avatar):
		$avatar;
}

add_filter('get_avatar',get_default_avatar,10,2);
?>

最後の ?> はいらないと思うんだけど、流儀みたいなのでつけておきました。