「WordPress」カテゴリーアーカイブ

テーマの更新には属性の変更を(WordPress)

Coreserverなど、Wordpressテーマファイルのパーミッションが書き込み禁止となるサーバーでは、テーマの編集を行うと、「変更を保存するには事前にこのファイルを書き込み可能にする必要があります。詳しい情報は Codex を参照してください。」と表示され、保存できません。

wordpressフォルダ以下の、”wp-content\theme\テーマ名\”中の編集したいファイルの属性を666などに設定すれば、書き込み可能となり、「更新」ボタンが表示されます。

WordPressの丸ごとバックアップはBackWPupで

WordPressのデータは記事や設定はデータベース(MySQL)に、画像等のデータや、プラグインなどは、そのままファイルとしてディレクトリに保存されています。

バックアップは手動でも可能ですが、プラグインを用いると自動かつ定期的に行うことができます。

いくつか試してみて便利だったのはBackWPupです。データベースのバックアップのみだったりするプラグインも多く見られますが、こちらはデータベースとファイルをすべてひとまとめにバックアップできます。バックアップ先は、以下のいずれかに設定できます。

  • 同じサーバの別ディレクトリ
  • E-mail
  • FTP
  • DropBox
  • SugarSync
  • Amazon S3
  • Google Storage
  • Microsoft Azure (Blob)
  • Rackspace Cloud

上記の様に対応が幅広いのも特徴です。

バックアップの最大数も決められるので、バックアップ先で使える容量をみながら設定できます。バックアップの状況もログを残したり、コンソールが表示されますので、バックアップにかかる時間なども予想できます。バックアップはバックグラウンドで行われるので、Wordpressへのアクセスに支障はありません。複数のバックアップを設定することもできるので、記事のみを毎日E-mailで、全体を週に1回FTPで行うというような設定も可能です。

DropBoxやSugarSyncは無料でGB単位の容量を利用できるので、通常のブログであれば、十分バックアップ可能だと思います。

堅牢性ではAmazon S3などを利用するのが良いのかもしれませんが、それならいっそAmazon EC2などでWordpressを立ち上げた方がよさそうです。

ちなみに、FTPはPHPのftp_connectを使うので、さくらのレンタルサーバ(スタンダード、2012年3月時点)のPHPでは使用できないようです。

 

 

期日指定で投稿を非公開にするプラグイン Post Expirator (WordPress)

企業ホームページで臨時休業などのお知らせなどは、用が済んだら表示しないほうが望ましいです。

WordPressでは指定日に公開は標準で対応していますが、指定日に投稿を非表示にする機能はありません。

今回紹介するプラグインはPost Expirator で、その名の通り指定した期日に投稿を非表示(下書きまたは削除)にします。

プラグインをインストールすると、投稿の編集ページに公開期限の設定欄が現れるので、そこで日時を指定します(Post Expirationのチェックも入れる)。いまのところ、世界標準時での設定なので、日本時間で設定する場合は、+9:00で設定します。投稿記事の一覧でも公開期限が確認できます。

オプションで、下書き状態にするのか、削除するのか、またはカテゴリーを変更するのかといった設定が可能です。

Google XML Sitemapsで書き込みエラーが出るとき (coreserver, WordPress)

Coreserverはファイルの書き込みや更新に制限が出ることが多くあります。

WordPressのプラグインであるGoogle XML Sitemapsでサイトマップファイルを作成するときも、新規にファイルを作ることができずにエラーが出ます。

エラーは「書き込みができませんでした」といった内容です。

There was a problem writing your sitemap file. Make sure the file exists and is writable. Learn more
There was a problem writing your zipped sitemap file. Make sure the file exists and is writable. Learn more

解決方法は、アクセス権を設定したからのファイルを作成することです。

通常必要なファイルはsitemap.xmlとsitemap.xml.gzです。
このファイルをwordpressフォルダ、またはインストールしたフォルダとは別フォルダにホームページを設定している場合はそのフォルダに作成します。内容は0バイトでOKです。パーミッションは666に設定します。

以上を行ったら、あらためてサイトマップを構築すれば完了です。再構築には、Google XML Sitemapsプラグイン設定ページから「サーバーまたはブログ上で何か変更をした場合は、手動でサイトマップを最構築するべきです。」のところで行ってください。

coreserverのPHPはセーフモードの制限があるので、こちらの「WordPressのダッシュボードの表示がおかしい」も参考にしてください。

Contact Form 7で複数のアドレスにメールを送る(WordPress)

WordPressで問い合わせなどに使うメールフォームのプラグインにContact Form 7があります。問い合わせの送り先のメールアドレスはプラグインの設定から行うことができますが、複数のメールアドレスを指定する場合は、半角カンマ(,)で区切って設定します。

半角セミコロン(;)は不可のようです。この場合、「メッセージの送信に失敗しました。間をおいてもう一度お試しいただくか、別の手段で管理者にお問い合わせ下さい。」というエラーが表示されます。

確認したバージョンはWordpress : 3.3.1、Contact Form 7 : 3.1.1、サーバーはCoreserverです。

 

WordPressのビジネス向けレスポンシブルテーマ

スマートフォンやタブレットが普及したことで、画面サイズは千差万別になりました。

サイトのスマートフォン対応は必要性は感じるものの、いままでのサイトにスマートフォン版を追加するのか、サイトの設計をし直すのかいずれにしろ面倒な問題です。

WordPressをサイト構築で使用している場合は、テーマを変えることで、スマートフォンに対応することができます。

有料のテーマは数多くありますが、こちらのBizVektor.comのテーマはGPLライセンス(無料)で配布されています。

ビジネス向けのレスポンシブルデザインなので、画面サイズの大小に関わらず、きれいに表示することができます。テーマをインストールして設定をするだけで、簡単にブログ対応、スマホ対応のサイトを構築できます。

wordpressは更新でもping発信

wordpressは記事を新規投稿したときばかりでなく、修正、更新したときもpingを発信するようです。ログも残らないので最近まで知りませんでした。ログが残らないと言うことは、pingの送信に成功したかどうかもわかりません。死んでいるサーバーにpingを送り続けている可能性もあります。

対策として、cbnet Ping Optimizer プラグインを導入しました。

pingの送信先の設定、強制送信、ログの保存ができます。ログを見れば、送信結果もわかります。予約投稿にも対応しているようです。

WordPress サイトのスマホ対応

スマートフォンやiPod touch でWordpressで構築されたサイトを見ると、かなり細かい表示になってしまいます。

スマートフォンやガラケー向けに別サイトを用意することも可能ですが、手間もかかります。

WordPressのデフォルトのテーマの一つであるTwenty Tenを解像度に応じて表示を変更するプラグインとテーマ “Responsive Twenty Ten” がありましたので紹介します。

プラグイン形式は “Download Plugin” から、テーマ形式は “Download Child Theme” から、お好みでどうぞ。

WordPressのデータベースサーバのみ引っ越し

いつの間にか、さくらのレンタルサーバのスタンダードで扱える MySQL データベースの数が1から20に増えていました。

いままで1つに諸々のサイトのデータベースを突っ込んでいたので、管理しやすくするために、分けることにしました。さくらの場合、MySQLのデータベースはバージョンによってサーバが異なる仕様です。ついでに5.1から5.5にバージョンアップしたデータベースを作成しました。他のレンタルサーバでは、localhostに接続することで使用できますが、さくらのレンタルサーバでは個別のサーバ名を指定することになります。

今回は別のサーバになりましたので、PhpMyAdminで手元のPCにバックアップしたものを、新しいサーバにそのままリストアしました。テーブルの数は12個でした。

その後、Wordpressをインストールしたフォルダのwp-config.phpのデータベース関連の記述を新しいものに変更しました。これで引っ越しは完了です。

最新の記事にだけAdsense広告を表示する (WordPress)

Google Adsenseの広告ユニットは1ページあたり3つまでと決められています。このサイトのように、記事を最新のものから複数個表示している場合、最初のいくつかの記事の下部にだけ広告を表示しています。

方法はこのサイトを参考にしました。

まず、ダッシュボードから、メインインデックスのテンプレート(index.php)を選択します。
その中で、記事を繰り返し表示している部分を探します。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

このようになっているところを以下のように変更しました。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $post_counter++;?>

そして、広告ユニットを入れたい場所を探します。

<?php if ($post_counter <= 1) {
print <<<EOD
<script type
....
....
</script>
EOD;

そこに上記のように、取得したコードを print <<<EODとEOD;の間に入れて、完成です。(EOD;の前にはスペース等を入れないよう注意。)

$post_counterの最大値を指定することで、広告の表示回数を変更することができます。