WordPress Backup to Dropbox でフォルダのバックアップ

BackWPupの問題点

BackWPupのサポートを止めました。プラグイン自体はとても優れているのですが、環境によって動かないことが多いです。3.1系のWordpressのバックアップに利用できましたが、バージョンが上がるにつれ、動かないことが多くなり、またプラグインの作りもホスティング環境で利用することを想定しない作り(ルートのtmpフォルダへのアクセスが必要など)になっていたりと、色々問題が発生したので、利用するのを止めました。

代替えプラグインとしてのWordpress Backup to Dropbox

SQLやWordpressそのものバックアップは他の手段で取れるので、問題は画像が格納されているuploadsフォルダになります。ただ、Dropboxのようなクラウドストレージにバックアップを取るという要件は外せません。代わりのプラグインを探していたら、ありました!Wordpress Backup to Dropbox。

インストールとセットアップ

インストールとセットアップは、非常に簡単です。プラグインを普通にインストールしたら、backupsフォルダをwp-content配下に作ります。そのフォルダの権限をchmodで707にしたらインストールは終わりです。

インストールができたら、左メニューに「WPB2D」というメニューが追加されるので、Backup Settingをクリックして、設定を行います。まず、Dropboxへの認証を訪ねられるので、指示に従ってバックアップ先となるDropboxのアカウントへログインします。Dropboxの認証が完了したら、バックアップを設定する画面が現れるようになります。

バックアップするフォルダを選択

WordPress Backup to Dropboxは、保存先もDropboxだけ、バックアップの設定は基本、「保存したくないフォルダを選択」するだけなので非常にシンプルです。いろいろ細かい要件には対応できませんが、「特定のフォルダをDropboxと同期する」だけであれば、十分に使えます。

設定画面では、wordpress配下のファイル/フォルダ全てがリストアップされるので、「保存したくないファイル/フォルダ」にチェックを入れます。ここでは保存したいフォルダはuploadsだけなので、「toggle all」のリンクをクリックし全てを選択した状態にし、wp-contentのチェックを外してドリルダウンして、バックアップを取りたいフォルダだけ「チェックが外れている」状態にします。

バックアップを取るフォルダの非選択ができたら、「Save Changes」ボタンを押し、設定を保存します。Wordpressが複数ある場合は、「Store backup in a subfolder」にフォルダ名を指定したら、自動でそのフォルダをDropboxのバックアップ先に作成し、そこにバックアップを取ります。(Dropbox側では、App/WPB2Dというフォルダがバックアップ先として自動で作成され、その下にここで指定したフォルダが作られます。)

WordPress Backup to Dropboxでは、バックアップ前にフォルダを圧縮したりしません。フォルダの構造そのまま、バックアップ先に同期されます。BackWPupではDropboxのAPIの仕様のため、最大150MBのファイルしか扱えませんでしたが、この方法ならファイルを一つ一つ同期しますので、フォルダのサイズが150MBを超えても、Dropboxにバックアップできるというメリットがあります。

フォルダのサイズが大きいと、最初のバックアップには多少時間が掛かりますが、一度バックアップが完了すると、次回からは増分だけバックアップを取りますので、バックアップの所要時間が短くて済みます。ここも、BackWPupに比べてメリットがある点です。フォルダのバックアップなら、むしろこちらの方が正しいソリューションと言えます。

これでフォルダのバックアップが快適になりました。リストアも、FTPでDropboxにあるフォルダをwp-contentに戻すだけになります。BackWPupをホスティング環境で動かすのに疲れた方は、こちらをどうぞ。

BackWPupでクラウドストレージへバックアップ

WordPressバックアップのベストプラクティス

WordPressのデータのほとんどは、MySQLのデータベースに格納されます。なので、バックアップはMySQLからデータベースをダンプして、そのファイルをサーバー以外の別の場所に保存することになります。5330では、WP-DBManagerとCimy Swift SMTPの2つのプラグインを使って、SQLファイル定期的に保存し、お客様のGmailに転送することをバックアップ手段として推奨しています。

管理系プラグインのMUST4

(WordPressファイルそのものは、Gitと呼ばれるバージョン管理システムを使って、変更履歴を取りながら管理します。)

先のバックアップ手段は、WordPressの設定、投稿、ページなどには有効ですが、メディアにある画像ファイル(大抵は、wp-content/uploads)まではバックアップできません。また、フォトギャラリーを作る定番プラグインNextGen Galleryなどを利用する場合も、画像ファイルのバックアップ手段を別途検討する必要があります。Download Managerを使って配布しているファイルがある場合も同様です。

WordPressのバックアップを完璧に行いたい場合、以下の3つのバックアップが必要になります:

  1. MySQLのデータベース(WP-DBManagerで定期的にバックアップ。そのファイルをGmailのアカウントへ転送。)
  2. WordPressそのもの(Gitで変更履歴を取り、専用レポジトリに保存。)
  3. wp-content配下の画像フォルダやファイルフォルダ

3. については、FTPでWordPressが運用されているサーバにアクセスし、これら画像ファイルが置かれているフォルダを定期的に手持ちのコンピューターにコピーする方法も考えられますが、人手で行うと面倒ですし、また忘れると思います。

バックアップ先としてのクラウドストレージ

ここ数年で、DropboxやSugarSyncに代表されるクラウドストレージサービスが身近になり、手軽に使えるようになりました。2ギガから5ギガの容量も無料で提供されています。バックアップを安全かつ確実に行うには、バックアップの保存先を数カ所確保しなければなりません。こうしたクラウドストレージが無料で提供されているのであれば、バックアップ先として活用しない手はありませんね。

WordPressでのバックアップを支援するプラグインは沢山ありますが、クラウドストレージへの連携に対応したものとなると選択肢は少ないです。BackWPupは中でもその中でも安定しており、Dropbox、SugarSyncのみならず、Amazon S3やMicrosoft Azureにまで対応しています。他にもFTPやメールでの送信にも対応しているため、考えつく大抵のストレージ先に対応できますので、きっと好みの方法でバックアップ手段が取れることでしょう。

BackWPup

BackWPupのセットアップ

上のリンク先からBackWPupをダウンロードして、WordPressにインストールします。プラグインを有効にすると、画面の上部に警告画面が出ます。それらは、このプラグインで必要なフォルダがなく、書き込み権限がないというメッセージなので、その警告に従ってフォルダを作成し、書き込み権限を追加します。フォルダは2つ必要です:

  • backwpup-?????
  • backwpup-?????-log

上のフォルダは、バックアップ対象になるフォルダを圧縮したファイルを格納します。下のフォルダには、バックアップ時のログを保存します。ログのフォルダはプラグインを有効するだけで自動作成されますが、バックアップ用のフォルダは自動で作成されないので、mkdirで作成しておきます。両フォルダともに、chmodで権限を707にすることを忘れないでください。

プラグインのセットアップはこれだけです。

BackWPupのバックアップジョブを作成

セットアップが済んだら、バックアップのジョブを作成します。設定画面へのメニューは管理画面左「ツール」の下に追加されます。メニューをクリックして、BackWPupの設定画面を開きます。

上方の「Add New」ボタンを押して、新規ジョブを作成します。

新規ジョブ作成画面右上に「Job Type」窓がありますので、File Backupだけをチェックします。5330では、先に書きました通りデータベースのバックアップはWP-DBManagerとCimy Swift SMTPプラグインで行っていますので、バックアップするのはファイルだけです。

真ん中の「File Backup」でバックアップするフォルダを選択します。ここではwp-content/uploadsの画像だけバックアップしたいので、Blog Uploadsにチェックします。画像フォルダを年別で整理している場合は、2010年以前のものだけまとめて一度バックアップを取り、差分である2011に対してだけバックアップをスケジュールすると、ストレージや通信帯域を圧迫しません。大きなファイルをバックアップする場合はサーバに付加が掛かりますので、各環境で設定の調整を検討してみてください。

次にクラウドストレージサービスの設定です。Dropboxがメジャーだと思いますが、サービス連携にOAuthを使っており、署名の扱いがおかしいのか、Dropboxにファイルをアップする際にエラーが出てしまいます。しかたがないので、(Dropbox連携のバグが直るまで)代わりにSugarSyncを使います。デスクトップで使う際の使いやすさはDropboxの方が上ですが、SugarSyncの容量は5ギガありますので、バックアップ用ならこちらの方が適しているかもしれません。

SugarSyncの設定では、メールアドレスとパスワードを入力します。パスワードが入力されると、アカウントの確認が自動的に始まります。正しいアカウントであることが確認されると、Root: の部分にバックアップ先の選択肢が表示されるようになるので選びます。利用しているデスクトップと同期を取る必要がないのであれば、ウェブアーカイブを選ぶと良いでしょう。この辺りは好みで設定してください。バックアップ先に更にサブディレクトリを作っている場合は、Directory: にディレクトリ名を入れます。Max. Backup Files in Folder には、このジョブでバックアップするファイルの保存数を入力します。画像なので、最新のものが一つあればいいですよね。なので、「1」を入力しています。

Backup Fileでは、ファイル名の接頭語を決めます。何のバックアップか分かりやすければ、何でも良いでしょう。バックアップ時にフォルダは圧縮されますので、好きな圧縮形式を選びます。画像なので、圧縮率の高いBZip2とかが良いかもしれません。Windowsでもみたいなら、Zipのほうが楽です。

バックアップジョブのテスト

個々まで設定できたら、「Save Change」を押して設定を保存します。ふたたび、ジョブのリスト画面に戻り、作成したジョブが登録されたことを確認します。作成したジョブの名前の上にマウスをのせると、「Run Now」というリンクが表示されるので、早速、このジョブが動くかテストします。

バックアップが完了すると上のようなログが表示されます。バックアップに失敗したときだけ、同様のログがメールで送信されます。サーバをセーフモードで動かしているため、色々警告が出ていますが、バックアップは正常に行われます。セーフモードだと送信時に実行時間やメモリの制約があるため、大きなバックアップはしない方がいいでしょう。ですので、バックアップするフォルダごとにジョブを作って、実行する時間をずらしておく等の対策をしておきたいものです。

バックアップのスケジュール

再びジョブの設定画面に戻り、ジョブの実行時間をスケジュールします。先ほど作成したジョブを定期的に実行したい場合は、Activate schedulingにチェックを入れます。それぞれのセレクトメニューが実行時間の項目なっていますので、設定します。上は毎日午前3時に実行する例になっています。

まとめ

一昔前なら、高価なDATテープ複数個使って面倒なバックアップのローテーションを手作業でやっていたのが、無料のクラウドストレージとWordPressのプラグインを使ってここまで自動化できるようになったのは、凄いことだと思いますw(少なくとも昔から、こういう仕事をしていた者には、「まさか無料でここまでできるようになったのか」と感慨深いです。)WordPressのバックアップ方法はこれまで色々試してみましたが、これが決定版のような気がします。データベース、WordPressのファイル、画像&その他のファイル、の3つが何処かに保存されていれば、サーバに何が起ろうとも大事なサイトを復活させることができますので、もう心配ありません!皆さんもお試しください。

投稿のカテゴリー選択をラジオボタンにする

WordPressで新規投稿する際に、記事のカテゴリーを決めて選択するようにしていることがよくあると思います。5330のブログでもWordpress、プラグイン、テーマ、カスタマイズ、の4つを定義して、記事を整理しています。

投稿を整理するのに大事なカテゴリーですが、一つの投稿に複数のカテゴリーが付けられるので、散らかることもよく起ります。(カテゴリーやタグを付けすぎて、何がなんだかというブログもたまに見かけますね。)整理整頓好きな方だと、一つの記事に一つのカテゴリーで十分と考える方もいるでしょう。そういう場合、カテゴリーの選択を複数選択が可能な「チェックボックス(四角いやつです)」ではなく、一つしか選択できないラジオボタン(丸いやつです)にしたいかもしれません。WordPressの使い方をよく知っている人なら良いですが、お客さんに納品する場合など、入力方法を用途にあわせて制限してあげた方が親切ですし、利用の際に間違いも起りにくくなります。

カテゴリー選択をラジオボタンに変更するコードを紹介します。ちなみにこの記事の元ネタはこちらです:

[resolved] Help create a simple admin plugin

if(strstr($_SERVER['REQUEST_URI'], 'wp-admin/post.php')) {
    ob_start('one_category_only');
}
if(strstr($_SERVER['REQUEST_URI'], 'wp-admin/post-new.php')) {
    ob_start('one_category_only');
}
function one_category_only($content) {
    $content = str_replace('type="checkbox" name="post_category', 'type="radio" name="post_category', $content);
    return $content;
}

リンク先のコードだけだと、編集だけで新規作成の時にラジオボタンにならないので、post-new.phpを追加しました。変更箇所はそれだけです!リンク先にあるようにプラグインにしてもいいですし、functions.phpに書き込んでも同じように動きます。お試しください。

ページに投稿を表示するショートコード

WordPressをコンテンツ管理システムとして使う場合、サイトトップはブログのように投稿(ポスト)を時系列で表示するのではなく、奇麗にデザインされた固定ページを用意し、投稿は一部だけを(例えば新着記事5件とか)ページ上にリストで表示するなんてことをよくやります。

WordPressをブログっぽくしたくない時、トップページでループ(投稿のまとまりのこと。WordPressのテーマのテンプレートで投稿を連続表示させるファイルはloop.phpと呼ばれます。)をまるごと表示ではなく、一部だけ表示するようにして、投稿は別の専用ページ上で表示するようにします。こうした作り方をする際、ループを任意のページに簡単に差し込めるショートコードを作っておけば、ページごとにコードが微妙に異なるテンプレートを用意せずとも、このカスタマイズが簡単に実現できます。会員制サイトで著者とカテゴリーで分類すれば、特定の会員のお知らせを表示するページなんかも作れます。ショートコードを使うので、お客さま側で簡単に表示の順番を入れ替えたり、レイアウトを変えたりできます。あと、カスタム投稿タイプを使って専用のお知らせ入力欄を作り、好きな場所に表示するなど、ページの中に色々なコンテンツを一括して掲載することができるようになります。投稿の種類と表示場所が自由に選べるだけでも、できることは色々広がりそうです。

(上の例では、Post UI Tabsプラグインを使って、ページのコンテンツを3つのタブに分類し、その一つ”お知らせ”に著者web5330によって書かれた投稿のループを差し込んでいます。)

いろいろ応用が利くループを表示するショートコードですが、日本語で書かれた作り方の情報がほとんどありません。英語では多少ありますが、情報が多少古いのと、ループ部分の出力の仕方が単純なリスト表示だけだったりしたので、元のコードを改変して、WordPressのloop.phpで出力している形式のものを作ってみました。

ちなみに元のコードはこちらです:

WordPress shortcode: Display the loop

改変版コードはこちらです:

function myLoop($atts, $content = null) {
    extract(shortcode_atts(array(
        "query" => '',
        "category" => '',
        "author_name" => '',
        "posts_per_page" => '',
    ), $atts));
    global $wp_query,$paged,$post;
    $temp_query = $wp_query;
    $temp_paged = $paged;
    $temp_post = $post;

    $wp_query= null;
    $wp_query = new WP_Query();
    if(!empty($category_name)){
        $query .= '&category_name='.$category_name;
    }
    if(!empty($author_name)){
        $query .= '&author_name='.$author_name;
    }
    if(!empty($posts_per_page)){
        $query .= '&posts_per_page='.$posts_per_page;
    }
    if(!empty($query)){
        $query .= $query;
    }
    $wp_query->query($query);
    ob_start();
    ?>

    <?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
	    <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

	    <div class="entry-meta">
	        <?php twentyten_posted_on(); ?>
	    </div><!-- .entry-meta -->

	    <div class="entry-content">
	        <?php the_content(); ?>
	    </div>
	</div>
    <?php endwhile; ?>

    <?php
    $wp_query = null;
    $wp_query = $temp_query;
    $paged = null;
    $paged = $temp_paged;
    $post = null;
    $post = $temp_post;
    $content = ob_get_contents();
    ob_end_clean();
    return $content;
}
add_shortcode("loop", "myLoop");

?>

上のコードをfunctions.phpに差し込めば、loopショートコードが使えるようになります。テーマの変更を自由にしたい場合はプラグインにすると良いでしょう。利用できるパラメーターはcategory_name、author_name、posts_per_pageの3つを用意しました。WP_Queryで使えるパラメーターは何でも追加できるので、パラメーターは好きに改変してください。shortcode_attsの配列にパラメーターを追加するだけでOKです。

ショートコード API

WP_Queryの説明は下のリンクを参照してください。リンク先にも説明されているように、使えるパラメーターはquery_postsと同じです。

関数リファレンス/WP Query
テンプレートタグ/query posts

ページにショートコードを差し込む際の記述は以下のとおりです:

[loop category_name="work" author_name="web5330" posts_per_page="5"]

上のショートコードをページの好きな場所に差し込むことで、WordPressの投稿からカテゴリーがwork(仕事)、著者がweb5330(nicenameを使います。ニックネームではないので注意!)、最新の投稿5件をWordPressのデフォルトのループ同様フル記事で表示します。ページ送りもできるはずなので、htmlのアウトプットを変えたいときは、ob_start()からob_get_contents()の間のhtmlを変えれば、好きなhtmlを出力できます。

このショートコードが一個あるだけ、色々できることが広がるので皆さんも試してみてください。

Gigya Make Your Site Socialを使ってTwitter、Facebookのアカウントでログイン

WordPressで会員制サイトを作ることがあると思います。2、3人の管理者がサイトの更新をするようなところであれば、WordPressのユーザー機能でアカウントを作成すれば済みます。しかし数百名規模もしくはそれ以上の不特定多数のユーザー(会員)に使ってもらうためにアカウントを新たに発行して管理するのは、小規模サイトではしんどいと思います。

Twitter、Facebookに代表されるソーシャルサービスでは、外部のWebサイトに、それらのサービスのアカウントを使ってサイトにログインする方法を提供しています。Twitterの@AnywhereやFacebook Connectなどがそうです。このようなログインサービス(「シングルサインオン」とも呼ばれます)を利用するメリットとして、ユーザー側には新たにアカウントを発行して、新しいパスワードを覚える必要がないこと、サイト側には、ユーザーのパスワードを管理しなくてもよいこと(つまりパスワード再発行の責任を負わなくて済むようになる)、が挙げられます。

ログインサービスには各サービスに対応した専用プラグインもありますが、ユーザーがどのサービスをメインに使っているかは、ユーザーの好みもありますので、色々なものから選択できるようになっているほうが親切です。実際、ブックマークボタンはサービスごとに用意しているサイトが多いですね。ログインでさまざまなソーシャルサービスに対応させるには、Gigyaが開発している「Make Your Site Social」プラグインを使います。

Gigya
Make Your Site Social

Make Your Site SocialのインストールとGigyaのレジストレーション

上のサイトからプラグインをダウンロードして、管理画面からインストールします。設定メニューにGigyaというメニューが追加されるので、そこから設定します。

このプラグインの設定を行うには、Gigyaが提供するAPI Keyが必要になりますので、上のリンクから同社のサイトにアクセスして、開発者登録します。ちなみに、開発者登録を行うのは無料で、非商用サイトであればサービスの利用も無料です。商用サイトで利用する場合はご注意ください。

上はGigyaのアカウント登録の画面です。アカウント登録のフィールドの上にソーシャルサービスのアイコンがずらーっと並んでいます。それぞれのアイコンはボタンになっていて、クリックすると、そのサイトに飛んで行き、そのサービスでのログインを求められます。Gigyaを使ったログインの流れを理解するために、実際に表示されているアイコンから選んでログインしてみましょう。各サービスでの認証後、メールアドレスの提供などが求められるので、必要に応じてOKを出します。認証が成功したら、またGigyaのサイトに戻り、下のような管理画面が表示されます。これでアカウントの作成は終わりです。簡単でしたよね?

Gigyaで認証するサイトの登録とAPI Keyの取得

Gigyaではソーシャルログイン以外にも、ソーシャルサービスを使う便利なサービスが色々提供されているので、設定できる項目が多数ありますが、ログインに関しては右上の「Sites」の設定だけ行います。上の例では既に2件のサイトが追加されていますが、初めて利用する場合は、もちろん何もエントリされてないはずなので、「Add Site」をクリックして、サイトを追加します。

ソーシャルログインを利用するサイトのドメイン名を聞かれますので入力します。OKボタンを押すと、Sites欄にドメイン名が追加されます。追加されたドメイン名の下に、Show API Keyのリンクが出るので、それをクリックしてAPI Keyを取得します。Secret KeyはSitesの下にあるShow Secret Keyのリンクを押して取得します。それぞれのキーは設定画面のフィールドに貼付けますので、クリップボードに保存するか、テキストに貼付けておいてください。

プラグインの設定

キーの取得が済んだら、WordPressの管理画面に戻り、プラグインの設定画面にそれぞれのキーを入力します。

Post Login Redirectはログイン後に任意のページに飛ばしたい時に設定します。なにも設定しなければ、ログイン後はダッシュボードが表示されます。Email required for registrationもオンのままでいいでしょう。

次に「外観」を設定します。こちらはブックマークボタンの設定のように、JavaScriptのコードをそのまま記入します。コードの生成は、Gigyaのサイトにログイン後、上の方に「PLUGINS」というメニューがあるので、それをクリックして、コード生成画面に行きます。

2. View でアウトプットを確認しながら、1. Customize Plugin Design を設定していきます。設定を変えると、3. Grab Code に設定に対応したコードが出力されます。上の例では、scriptタグを含めたコードが出力されていますが、WordPressの設定で必要になるのは、上の枠から「var conf=….」と下の枠から「var login_params=…」の部分だけです。

抜き出した2つのパラメーターをまとめると以下のようになります:

var conf=
{
    APIKey:'YOUR_API_KEY_HERE',
    enabledProviders:'twitter,facebook'
};
var login_params=
{
    showTermsLink:false,
    hideGigyaLink:true,
    headerText:'Or login using Twitter or Facebook',
    height:150,
    width:200,
    containerID:'componentDiv',
    UIConfig:'<config><body><controls><snbuttons buttonsize="42"></snbuttons></controls><background frame-color="#FFFFFF"></background></body></config>'
};

GigyaのPLUGINSであれこれいじるよりも、ドキュメントでパラメーターの内容を確認しながら、上のコードを修正した方が楽かもしれません。WordPressのログイン画面で奇麗に表示されるように見た目(UIConfigの所)も調整済みです。APIKeyにはご自身のキーを入れてください。enableProvidersの部分には、好きなソーシャルサービスを追加できます。サービス名をカンマで区切って入力してください。headerTextにはログインの説明を書きます。WordPressのログイン画面で表示されます。

設定を完了し、ログイン画面に行くと上のようなログインボタンが追加されます!

ログインしてみる!

早速、ソーシャルログインボタンを使ってログインしてみましょう。好きなボタンをクリックするだけでログインが始まります。

Twitterのボタンを押すと、上のような画面が表示されます。Twitterのアカウント名とパスワードを入力し、ログインボタンを押します。もしソーシャルログインをするユーザーが初めてログインする場合は、WordPressのアカウントを作ることになるので、事前にWordPress管理画面の「一般設定」で「誰でもユーザー登録ができるようにする」にチェックするのを忘れないでください。(わたしもよく忘れます。。。)

Twitterでのログインが成功したら、WordPressに戻り、しばらくした後にダッシュボードに遷移します。プロフィールを見るとTwitterから受け取ったユーザー情報がそれぞれのフィールドに入力されます。ウェブサイトのフィールドにはTwitterのアカウントのURLが入力されてしまいますが、新たにTwitterのURLのフィールドを作って、そちらに自動で入力するようなこともプラグインのコードを少しいじればできるようになります。Twitterでログインした場合、アバターもTwitterのプロフィール画像のURLが自動でアサインされます。アバターはWordPressのユーザー一覧で表示されるようになります。

各サービスから自動取得できるユーザー情報の一覧は以下のリンク先に詳しいです:

Products>Social Sign-on

これからWebサービスを作るなら、アカウント管理やログインなんかはソーシャルサービスに任せてしまって、サイト運用でラクしてみてはいかがでしょうか?

CAUTION!: Gigyaの2.0.4のプラグインだと、ソーシャルサービスでの認証から戻って来た時、WordPressのログイン画面で止まってしまうという現象が見られました。昔ダウンロードした1.2.2だと正常に動作することを確認しています。)

Download Managerでダウンロード販売

(注:少し前にはてなブログに書いた記事の転載です。)

ブックリーダーの覇権争いや、書籍フォーマットの標準化などで、まだまだどうなるかわからない「電子書籍」ですが、コンテンツを持っている人たちが、出版社を通さないで気軽に出版、販売できるようになったのは間違いない感じです。そういう意味では、電子書籍として読み方・読まれ方のイノベーションというよりは、出版と流通のイノベーションととらえた方が良いのではないでしょうか。

これから気軽に自費出版するようなニーズも増えると思うので、WordPressでファイルを配信するのに便利な方法を考えていました。

WordPressをお使いなら、誰にでもお手軽にファイルを配信できるのが、WordPressプラグインの「Download Manager」を使った方法です。ダウンロード関連のプラグインは色々ありますが、これが一番使いやすいです。

WordPressのDownload Managerプラグイン
作者のサイト

プラグインのインストールとセットアップはとても簡単で、WordPressの管理画面からインストールしたら、uploadsとかに提供したいファイルの保存先となるフォルダ(e.g. downloads)を作って、アクセス権を書き込み可にするだけです。このフォルダのファイルへ直接アクセスすることは.htaccessファイルで禁止します。このファイルはプラグインのフォルダにあるので、先ほど作成したフォルダにコピーし、chmodでアクセス権を644にしておきます。

インストールできたら、管理画面の左のメニューに上のようなメニューが追加されているはずです。

設定画面での操作は簡単で、「Add New File」からダウンロードするファイルを登録し、その際に生成されるショートコード「{filelink=?}」(?の中にはダウンロードのID番号が入ります。)を投稿やページの中に書くだけで、そのファイルに対するダウンロードボタンが自動生成されます。

ログインしているユーザー(Members)にだけダウンロードを許可したり、ダウンロードの際に指定したパスワードの入力を求めるといったアクセス制限が掛けられます。また、ダウンロード回数を数えるカウンターの表示もできます。カウンターを非表示にしても、管理画面でダウンロード回数を見ることができます。

このようにWordPressの投稿やページを使って、お手軽にダウンロード配信をする際にはもってこいなプラグインだったりします。

ダウンロードに課金したい場合は、以下の手順で販売ページを準備します:

  1. まずダウンロードページを作成し、ダウンロードをこのプラグインを使ってパスワード保護します。
  2. Paypalでこのダウンロード専用の決済ボタンを作成して、商品紹介をするページに貼付けます。
  3. トップページからは、この商品紹介ページへ誘導し、商品の説明を行い、Paypal決済を促します。
  4. Paypalでの支払いが確認できたユーザーに対しては、ユーザーがPaypalで使ったメールアドレス宛にダウンロードページのURLとプラグインで設定したパスワードを送れば良いでしょう。

メール送信は手動でもできますが、「PayPalオートメール」のようなツールを使えば、Paypal決済をしたユーザーに自動でメールを送信することも可能です。

良いコンテンツを持っていて、WordPressでダウンロード販売をやってみたい方は是非。

シェア(共有)ボタンを追加する

WordPressで作ったサイトを宣伝する上で、ソーシャル系のサービスが提供しているシェア(共有)ボタンの設置はかかせません。

シェアボタンを提供しているソーシャル系サービスはそれこそ色々ありますが、サイトにボタンをごちゃごちゃ乗せるのも、見た目上よくないですし、使い勝手も悪くなってきます。欲張らずに、日本で人気のあるサービス3つくらいに絞った方が良いでしょう。サービスの追加や入れ替えは、後で簡単にできるので、ここではTwitter、Facebook、はてなブックマークの3つに絞って解説します。

  1. Twitter Retweet(Topsy Retweet Buttonプラグイン)
  2. Twitter Retweet(公式リツイートボタン)
  3. Facebook いいね!(Like!)
  4. 新はてなブックマークボタン

1. Twitter Retweet(Topsy Retweet Buttonプラグイン)

http://wordpress.org/extend/plugins/topsy/

Twitterのリツイートボタンを追加したい場合、いろいろプラグインがあるので、それを使うのが一番お手軽です。なかでもよく使われているのが、Topsy Retweet Button プラグインです。

プラグインをインストールしたら、設定メニューの下に「Topsy」というメニューが追加されるので、そこから設定します。デフォルトの設定のままでも動きますが、リツイートの中に自分のTwitterアカウントを入れたいときは、Retweet Usernameのところに入れておきます。あとはVisual Appearanceでボタンの見た目を決めます。

すると上のようなプレビューが表示されます。設定のButton Placementでブログのどこにボタンを挿入するか指定できますが、大抵、ページの上か下に差し込まれることになるので、細かく差し込み場所を指定したい場合は、PHPの topsy_retweet_big() というコードを使って、single.phpのボタンを表示したい場所に差し込みます。するとWordPressのページ上では、ボタンを表示するためのコードが自動で生成され、ブラウザ上でリツイートボタンとして表示されます。

2. Twitter Retweet(公式リツイートボタン)

Topsyのような外部サービスではなく、Twitterが提供する公式ボタンを使いたい場合は、プラグインを使う方法もありますが、差し込み場所を自由に指定したいのであれば、リツイートボタンのコードを作って好きな場所に差し込みます。

公式ボタンは以下のTwitterのサイトで作成することができます:

http://twitter.com/about/resources/tweetbutton

サイトに丁寧に説明されているので、ボタンの種類を決めるだけで簡単に公式リツイートボタンが作れます。

できあがったコードをsingle.phpの好きな場所に差し込めばOKです。

3. Facebook いいね!(Like!)

Facebookのいいね!ボタンもTwitterの公式ボタンのように、Facebookのボタン作成ページでコードを作ります。

http://developers.facebook.com/docs/reference/plugins/like/

  • URL to Like:空のまま(空にすることでボタンが表示されているURLを使います)
  • Send Button:アンチェック(SendはFB上のお友達との共有に使います)
  • Layout Style:box_countを選択(他のボタンと表示を合わせます)
  • Width:幅は”50”ピクセル(他のボタンの横幅がそれくらいなので合わせます)
  • Show Face:アンチェック

右にプレビューが出ますので、残りの項目を設定して、見た目の微調整ができたら、Get Code ボタンを押して、コードを生成します。するとiframeとXFBMLの二つのコードが表示されます。

どちらか好きなコードを、single.phpの好きな場所に差し込みます。XFBMLを選んでも、iframeのコードが生成され差し込まれます。

4. 新はてなブックマークボタン

新しくなったはてなブックマークボタンも、はてなのサイト上でコードを生成します。

http://b.hatena.ne.jp/guide/bbutton

URLとタイトルにブログの情報を記入し、好きなボタンタイプを選べばコードの完成です。できあがったコードをsingle.phpの好きな場所に差し込みます。

ボタンのレイアウトを直す

HTML要素としてsingle.php上に順番にボタンのコードを並べても、ブラウザ上で見るとボタンは縦一列に並んでしまいます。通常、ボタンを横に並べる場合が多いと思いますので、HTMLのリスト表示とスタイルシートを使って、横に並べます。

HTML


<ul class="socialbutton">
    <li><?php topsy_retweet_big() ?></li>
    <li>"ここにLike!ボタンのコードを入れる"(長いので略します。)</li>
    <li>"ここにはてなブックマークのコードを入れる"(長いので略します)</li>
</ul>

CSS


ul.socialbutton li {
    float: left;
    width: 50px;
    margin-right: 10px;
}

まず、HTMLのリスト表示に使うulとliのタグを使ってボタンのリストを作ります。ulタグにはclassにsocialbuttonなどの名前を付けておきます。liの中にそれぞれのボタンのコードを入れておきます。

次に、スタイルシートに先ほどHTMLで作ったリストのスタイルを定義します。ulの中のli要素はfloatで順番に横に並ぶようにし、widthで横幅を指定します。margin-rightで各ボタンの右側の余白を指定して間を少し開けます。これで、liの順に左から右へボタンがきれいに並びます。

Twenty Ten

http://ja.blog.wordpress.com/2010/04/27/new-theme-twenty-ten/

Twenty Tenは、WordPressがバージョン3.0にアップデートした際に、デフォルトテーマとしてリリースされました。

作者のコメントにあるように「スタイリッシュでカスタマイズしやすく、シンプルで、何よりも読みやすい」を追求したテーマとなっています。使いやすく読みやすいサイトを作る場合には、うってつけのテーマです。

Twenty Tenでは、管理画面上で見た目を簡単に変更する多数の機能が用意されています。

  • カスタムヘッダー:上部にある幅940px、高さ198pxの画像を自由に入れ替えることができます。サイズ通りの画像を用意しなくても、好きな画像から好きな部分を切り抜いて(トリミングして)アップすることができます。
  • カスタム背景:背景の色を変えたり、パターン画像を背景としてアップロードして、背景を簡単に変更することができます。
  • ドロップダウンメニュー:3.0での目玉機能の一つ。ヘッダー画像の真下に位置するメニューを、ページなどによるメニュー項目を選択し、ドラッグ&ドロップで順番を変えたりすることで、簡単に構成することができます。この機能のおかげで、会社っぽいサイトが気軽に作れるようになりました。

他にも印刷用には別のスタイルが用意されているなど、WordPress上で文書配布をしたい時などに便利な小技も色々あったりします。

またデフォルトテーマであることから、WordPress3.0の機能を全て利用できるように設計されています。(3.0用テーマのお手本として作 られたものなので、当然と言えば当然ですが。)WordPressが持つ機能をフルに活かしたサイトを構築したい場合には、まずTwenty Tenで機能を確認し、確認が済んだ後で見た目の調整をすれば良いでしょう。

オススメの使い方

ブログっぽいレイアウトが使えるサイトであれば、どんな用途でも行けます。ヘッダー画像、背景、メニューや文字の色(ただしスタイルシートの変更が必要)を変えるだけでも、ずいぶん印象の違うサイトに仕上がります。大抵のプラグインは、このテーマに対しテストしていると思われるので、プラグインを安心して使えるのもうれしいです。

見た目はどうしてもブログっぽくなるので、それがイヤな場合は使えません。

長所

  • WordPressのほぼ全ての機能、プラグインが使える
  • 読みやすく、印刷用にもよい
  • 見慣れたレイアウトなので使い方がわかりやすい

短所

  • 見た目がどうしてもブログっぽくなる
  • (有名なので)Twenty Tenを使っていることがばれてしまう

管理系プラグインのMUST4

WordPressをつかったサイトを立ち上げたら、管理のためにいくつかのプラグインを入れることが多いです。

5330でよく使う便利な管理系プラグイン4つを紹介します(リンク先はwordpress.orgのプラグインのページです)。

  1. Cimy Swift SMTP
  2. Secure WordPress
  3. WP Security Scan
  4. WP-DBManager

1. Cimy Swift SMTP

Cimy Swift SMTPは、WordPressがインストールされているサーバーにあるメールサーバー(SMTPサーバー)を使わずに、外部にある別のメールサーバーからメールの送信を行いたい時に使います。

スモールビジネスでは、ドメインは取得していても、メールサーバーの管理まで手が回らず、代わりにGMailで代用することも多いと思います。近頃のホスティングサービスでは、新規メールアカウントの作成はWeb上でわりと簡単にできるようになっていますが、なるべくこうしたインフラ系の管理はよくわからないし、したくない、というニーズもあると思います。そういうとき、GMailで済ませてしまえば、メールに関するインフラはGoogleに任せることができて、余計な心配のタネを一つ減ります。

そういう時、Cimy Swift SMTPを使えば、メールの送信を全てGMailを経由して行えるようになります。WordPressから直接メールを送信する場合、送信されたか?の確認は自分宛にCCかBCCする必要がありますが、このプラグインを使えば、送信メールはGMail側の送信箱(Sent box)に溜まりますので、メールが正常に送信されたか容易に確認できるようになりまし、受信箱にCCやBCCするよりは、正しい箱にメールが整理されるので、後で確認するときも混乱せずにすみます。

WordPressに連絡フォームを追加する「Contact Form 7」や、ショッピングサイトプラグインの「Welcart」を導入する際に、このプラグインを導入するとより便利になります。特にショッピングサイトでは、頻繁にメールを送信するので、このプラグインを使ったメールの整理は必須です。

2. Secure WordPress

Secure WordPressは、その名の通りWordPressのセキュリティ強化を行ってくれるプラグインです。主な機能としては、

  • サイト上やソースに表示される不用な情報(バージョン情報とか)を非表示にする
  • /pluginsと/themesにindex.phpファイルを作成し、ディレクトリ一覧を表示しないようにする
  • 管理者以外のユーザーにWordPress、プラグイン、テーマの更新通知が見えないようにする

があります。他の方法でも、上記のようなセキュリティ対策を施すことはできますが、どれもよくあるセキュリティ対応なので、プラグインでチェックするだけでまとめて行えたら便利です。

3. WP Security Scan

WP Security Scanは、Secure WordPressとは別に必要になるセキュリティ対応が実施されているか?を確認するツールです。「確認」なので、セキュリティ対応まではしてくれません。問題箇所を発見したら、このプラグインを使うか、手動で修正する必要があります。確認できることとしては、

  • DBテーブルにデフォルトの「wp_」を使っていないか?
  • WordPressのバージョンが隠されているか?(Secure WordPressで対応できる)
  • WordPressのDBエラーがOFFになっているか?
  • 管理者に「admin」を使っていないか?

などがあります。あとWordPressの主要なディレクトリにアクセス権が適切に設定されているか?をスキャンして確認できます。アクセス権が不適切な場合は、そのディレクトリは赤色で表示されるので、ホスティング先にあるサーバーに接続して、chmodなどでアクセス権を修正します。

4. WP-DBManager

WP-DBManagerは、WordPressのバックアップを取るツールです。WordPressでは、メディア機能からアップロードした画像を除く全ての情報がMySQLデータベースに格納されます。全ての情報というのは、設定、アカウント、コンテンツ、全てです。なので、WordPressを普通に使っている限りは、データベースとwp-contentのバックアップが取ってあれば、WordPressが消し飛んでも元の状態に戻すことができます。

データベースのバックアップは一週間に1回など、定期的に取るようにスケジュールすることができます。取られたバックアップデータは、wp-contentなどにある所定のディレクトリに保存されますが、念のために別の場所にも保存しておいた方が安全なので、メールで自分のGmailアカウントに送信しておくこともできます。データベースデータは、数カ所で保存しておけば、サーバーに万が一のトラブルが発生しても安心です。

WPTouch

http://wordpress.org/extend/plugins/wptouch/

WPTouchは、WordPressに手軽にiPhone用のテーマを追加するプラグインです。上のサイトからプラグインをダウンロードできます。

WordPressで利用しているテーマとは別のビュー(見た目)を用意しているので、iPhone向けに見た目をカスタマイズできます。このプラグインをインストールしたら、設定メニューに「WPTouch」というメニューが追加されますので、そこから設定を行います。

投稿者、カテゴリー、タグといった投稿の属性情報の表示や、メニューのカスタマイズは簡単に行えます。表示レイアウトの変更は、プラグイン内のスタイルシートやPHPファイルを修正する必要があります。プラグイン内のファイルは、アップデートの際に新しい物に置き換わってしまいますので、修正する場合は修正箇所の管理が必要になります。それかプラグインをなるべくアップデートしないという対処が必要になるでしょう。

iPhoneの機能との親和性は高く、電話番号などは、そのままテキスト表示しておくだけで電話をかける為のリンクに変わります。住所をGoogle Mapの地図のリンクとして用意しておけば、そのリンクをクリックしたら、Google Mapを開いてくれるようになります。

コンテンツを読んでもらうだけでなく、店へ誘導するツールとしても最適です。