タグ別アーカイブ: プラグイン

wpプラグインWP-DBManager(lolipopサーバー編)

ロリポップレンタルサーバーがサイバー攻撃され、私のブログも文字化けやなんか、ひどい目にあったことは「ハッカー攻撃に早まって・・」に書いた通りです。
まあ、実際は私の処置対応がまずかったために、画像データを全て失ってしまい、ブログを一気に復活させることができなくなったわけですが。
しかし、転んでもただでは起きませんよ。データベースをかなり弄り回したおかげで、データーベースについて理解できたことが多く、次回からはインポートも間違わずにできるはず。
何はともあれ、データベースのバックアップは頻繁にとっておきましょう。
そこで、何といっても役に立つのがデータベースのバックアップを自動で行ってくれるプラグイン、WP-DBManagerです。
バックアップを自動で行ってくれるばかりでなく、メールで定期的に送信もしてくれます。
これならバックファイルを無くす心配もありませんね。

なお、2013年9月現在WordPressのヴァージョンは3.6を使用。
WP-DBManagerはバージョン 2.63をインストールしました。

WP-DBManagerのインストール

プラグインのインストール手順は次の通り

  • 1.管理画面の項目から「プラグイン」を開く
  • 2.プラグインの「新規追加」をクリック
  • 3.プラグインの「検索ボックス」にプラグイン名を入力
  • 4.表示されたプラグインの「いますぐインストール」をクリック
  • 5.「プラグインを有効化」をクリック

しかし、有効化したところ管理画面の上部に下記のような警告が出ました。

Your backup folder MIGHT be visible to the public
To correct this issue, move the .htaccess file from wp-content/plugins/wp-dbmanager to /home/users/0/lolipop.jp-dp22138636/web/wordpress/wp-content/backup-db

有効化しただけでは作動しないようです。

WordPress超初心者講座>> WP-DBManager(データベース・バックアッププラグイン)」を参照すると、以下の作業が必要だと分かりました。

FTPソフトなどで【wp-content/plugins/wp-dbmanager】フォルダにアクセスします。ここに、「htaccess.txt」という名前のファイルがあります。
これを【wp-content/backup-db】フォルダに移動させて、ファイル名を「.htaccess」に変更してください。
WP-DBManager(データベース・バックアッププラグイン)参照

上記のとおり「backup-db」フォルダに「.htaccess」をアップロードすると、警告も消えてなくなりました。

WP-DBManagerの日本語化ファイル

1年前にファイルを入手したサイトにアクセスしてみると、現在ではダウンロードページが無くなっていました。私のPCには保存したファイルがあるのですが、それを勝手に配布するわけにはいかないので、何とか作者サイトにいけないものかと検索してみました。
ネット上にはバージョンの古いものはたくさんあるのですが、作者名を表記しているものが無く、なんとなく作者不詳といった感じです。
私が保存しているものより新しいファイルを配布しているサイトがありました。

13サポサイフロー
 WP-DBManager Ver.3
WP-DBManagerの日本語化ファイルのインストール方法
上記サイトからダウンロードした2個のファイルwp-dbmanager-ja.moとwp-dbmanager-ja.poをwp-dbmanagerフォルダの中にアップロードします。

WP-DBManagerは日本語化ファイルが無いとすごく困る、というほどではありません。もちろん英語が堪能な人には全く不要なものです。出所がはっきりしないものは避けたい方は、使用しなくても問題ないと思います。私のような者にとっては、画面が日本語表記であるというだけで、ストレス軽減です。

01データベースの項目が、次のように日本語化されました。

02

[データベースバックアップ画面]
05[バックアップデータベースの管理画面]
06[SQLクエリ実行画面]
07jpg[データベースオプション]
08jpg[アンインストール画面]
09jpg

 サーバーがlolipopでエラーが出た場合

前回(2012年4月)のインストールでは、上記までの設定でデーターベースのバックアップができるようになるかと思いきや、データベースバックアップ画面にエラーメッセージが出ました。

エラーメッセージの内容は以下のとおり。(日本語がちょっとおかしなところがあります)

MYSQLのダンプパスを確認中 …
MYSQLのダンプパスが存在しません。オプションからパスの確認を行ってください。詳細が不明ながあいはサーバ管理者にお問い合わせください。

MYSQLパスの確認中 …
MYSQLパスは存在しません。オプションからパスの確認を行ってください。詳細が不明ながあいはサーバ管理者にお問い合わせください。

mysqldumpとmysqlへのフルパスはDBオプションの設定で自動的に取得されて表示できているのに、 何故か認識してくれませんでした。
検索してみると、「アフィリエイトで稼ぐ為のWordPressアクセスアップ術」>>「ロリポップでのWP-DBManagerの設定方法」に解決法が紹介されていました。
それによると、ロリポップ側のphp.iniの設定を変更する必要があるようです。

「php.iniの設定」の「safe_mode」という項目がOnになっていると思いますので、これをOffにする
ロリポップでのWP-DBManagerの設定方法」参照

これでやっと正常にデーターベースのバックアップができるようになりました。

そうして、あれから1年余り。メールに頻繁にバックアップデータが送られてくるのが鬱陶しくなり、いつしか便利な〝メール送信オプション”を停止してしまい・・・・・・今回の憂き目に遭ったという次第で・・・・全く油断大敵ですね。

wordpressで掲示板を作る

ご注意ください!
WordPress 4.4からテンプレートの仕様が変わり、下記の方法ではメールアドレスを入力必須項目から外すことができなくなりました。
「WordPress 4.4で掲示板を作る」を書きましたので、そちらも合わせてご参照ください。

当サイトのゲストブックは、これまでCGIによるフリーの掲示板ソフトを使っていましたが、スパムが大量にやってくるようになったため、新たにwordpressを使用して作成し直すことにしました。

私が作成したい掲示板(=ゲストブック)の完成目標は、以下の5項目。

①wordpressのコメント機能を利用してゲストブックを作る

「レンサバネット」の「WordPressに掲示板を簡単に設置する方法」を参考にさせていただきました。

1.固定ページに掲示板用のページを新規作成します。

本文は空白でも構いません。当サイトではページタイトルを「guestbook」としました。
それだけでも、掲示板ページが出来上がるのですが、私はメールアドレスを入力必須項目から外したいので、

2.ディスカッションの設定で、「名前とメールアドレスの入力を必須にする 」のチェックを外します。keijiban-0

②メールアドレスは入力必須項目から外し、webアドレスの入力フォームは削除する。

「Dragon-Ark」【wordpress】コメントの必須項目を変更する(メールを必須としない)を参考にさせていただきました。

wp-comments-post.phpの以下のコード(wordpres.ver3.5.2の場合75行目辺り)をコメントアウトして、Eメールの入力チェックを無効にします。そして新たに名前を必須項目にするコードを追加します。

/**コメントアウトここから
if ( get_option('require_name_email') && !$user->exists() ) {
	if ( 6 > strlen($comment_author_email) || '' == $comment_author )
		wp_die( __('<strong>ERROR</strong>: please fill the required fields (name, email).') );
	elseif ( !is_email($comment_author_email))
		wp_die( __('<strong>ERROR</strong>: please enter a valid email address.') );
}
コメントアウトここまで*/
//追加部分ここから
if(!$user->ID){
if ('' == $comment_author)
wp_die('名前を入力して下さい。');
}
//追加部分ここまで

名前とEメールの入力欄を残して、ウェブサイトの入力欄を削除するには、wp-includesフォルダの中にあるcomment-template.phpを編集します。以下のコード部分を探して(wordpres.ver3.5.2の場合1524行目辺り)websiteのフォーム部分を削除したコードに置き換えます。

以下のコード部分を削除する

	$fields =  array(
	'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
	            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
	'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
	            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
	'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
	            '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
);

以下のコードに置き換える
[※記述ミスがあったため、4行目を修正しました。20013年8月15日]

$fields = array(
        'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
                  '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
     'email'    => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label>' .
                '<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" /></p>'
);

③ゲストブックのページだけ、デザインを変更する。

1.使用中のテーマ(私の場合「twentyeleven」)に新規テンプレートを追加します。
2.新規テンプレートを作成するには、テーマのpage.phpを開き、任意の名前を付けて保存します。例えばpage-guestbook.phpとか。
3.新規に追加したテンプレートは、テンプレートネームを変更します。
テンプレートファイルの冒頭に記述されているTemplate Nameを任意の名前に変更。
たとえば以下のように書き直します。

<?php
/*
Template Name: guestbook
*/

4.最初に作成した固定ページguestbookを開いて、テンプレートの項目からguestbookを選択すると、テンプレートがデフォルトから、guestbookのテンプレートに変更されます。

keijiban-15.guestbookのテンプレートを編集する。
ゲストブックのページには、ヘッダーイメージやメニュー項目を表示させたくなかったので、テーマのheader.phpをコピーして新たにゲストブック用のheader-2.php(名前は任意)を作成しました。
6.header-2.phpからヘッダーイメージやメニュー項目に当たる部分のコードを削除します。
(※2014年12月現在、ヘッダーイメージは表示するように、レイアウトを変更しました。)
7.guestbookのテンプレートにheader-2.phpを読み込ませるには、get_header(); ?>の()部分に、読み込ませたいheaderの名前を記述します。

<?php
/*
Template Name: guestbook
*/

get_header(2); ?>

④ファイルをアップロードできるようにする。

コメント欄に画像などのファイルをアップできるようにする「プラグインcomment-imageを導入しました。
1.プラグインの新規追加画面でcomment-imageを検索
2.いますぐインストールをクリック
3.プラグインの有効化をクリック
有効化するだけで、画像 (GIF, PNG, JPG, JPEG)をアップすることができます。
特に設定画面もないので、どうしても変更したいところがあれば、comment-imageのPHPファイルやcssファイルを直接書き直すことになります。

⑤画像認証を設置する。

ほとんどのスパムは、wordpressの最強スパムブロックプラグイン「Akismet 」がキャッチしてくれるので、ブログに表示されることはありませんが、画像認証なしだと、やはりスパムがゾクゾクやってきます。認証無しってことは、ドアを開けっ放しにしているのと同じなんですね。
そこで、SI CAPTCHA Anti-Spam(コメント画像認証導入プラグイン)を導入することにしました。

「WordPress超初心者講座」の「SI CAPTCHA Anti-Spam(コメント画像認証導入プラグイン)」を参考にさせていただきました。

1.プラグインの新規追加画面でSI CAPTCHA Anti-Spamを検索
2.いますぐインストールをクリック
3.プラグインの有効化をクリック
4.管理画面のプラグイン項目からSI CAPTCHA オプションを開いて、必要なら設定をする。
オプションの設定は、デフォルトのままでも特に問題ありません。

 [追記]2015年2月22日 SI CAPTCHA Anti-Spamは不要になりました。

先月SiteGuard WP Pluginを導入したのですが、SI CAPTCHA Anti-Spamを有効化したままにしていたので、画像認証の入力画面が2個にダブっていることに、今頃気が付きました。
SiteGuard WP Pluginは

「管理ページとログインに関する攻撃からの防御に特化したセキュリティプラグインです。ブルートフォース攻撃、リスト攻撃等の、不正にログインを試みる攻撃や、コメントスパムを受けにくくするための機能です。画像認証の文字は、ひらがなと英数字が選択できます。」

という優れものです。

[追記]2014.4月19日
上記の方法で掲示板を作るにあたって注意すべきこと

WordPressをアップグレードするたびに、「wp-comments-post.php」とwp-includesフォルダ内の「comment-template.php」の二つのコアファイルを、変更箇所を探して書き換えなければなりません。
WordPress3.7からはアップデート(マイナーアップデートのみ)が自動で更新されるようになったため、コアファイルが勝手に上書きされてしまいますから、要注意です。
やはり、コアファイルをカスタマイズするのはあとあと面倒ですね。

【追記2】2014年11月21日
コメント入力フォームの位置について

コメントの入力フォームを掲示板ページの上位に設置したい場合、使用しているテーマのテンプレートファイルcomments.phpを開いて、<?php comment_form(); ?>タグの記述位置を変更します。

デフォルトではテンプレートの最後行あたりに書かれていると思いますが、それを上方にある<?php if ( have_comments() ) : ?>タグの、すぐ上に移動させます。

カテゴリをクリックしてタイトルリストを表示する

このブログで言えば「WEB作成」「 読書リスト」「日々のこと」と大きく3つのカテゴリがあり、それをさらに細かく分類しています。サイドバーにあるこのカテゴリをクリックすると、全タイトルがズラーっとリスト表示される方法の覚書です。

まずプラグイン「Custom Posts Per Page」をインストールします。

http://rephrase.net/miscellany/05/perpage.phpsにアクセスしてソースをコピー・ペースト。perpage.phpという名前(名前は任意)でwp-content/pluginsフォルダに保存してサーバーにアップします。

管理画面の「プラグイン・インストール済み」を開いて、プラグイン「Custom Posts Per Page」を”使用する”をクリックして有効化します。

プラグイン「Custom Posts Per Page」の変更できる箇所は以下の数字部分。$posts_per[‘category’]  = 999;はカテゴリのタイトルが1ページに最大999個表示されるということ。デフォルトのまま使うことにしました。

  • $posts_per[‘home’]      =  5;
    $posts_per[‘day’]       = 10;
    $posts_per[‘month’]     = 10;
    $posts_per[‘search’]    = 10;
    $posts_per[‘year’]      = 999;
    $posts_per[‘author’]    = 999;
    $posts_per[‘category’]  = 999;

テンプレートのcategory.phpを作成します。

テーマによってはcategory.phpが存在しない場合がある、ということですが、私が使用しているテーマもcategory.phpがありませんでした。
category.phpが存在しない場合は、index.phpを利用して新規にcategory.phpを作成します。
category.phpを作成するには、index.phpを開いて、ループ部分を編集し,名前をcategory.phpに変更し、使用中のテーマのフォルダに保存します。
編集する部分は</header>の直後から <?php endif; ?>の直前まで。
そこを以下のように書き換えます。

<ul> <?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>
<li id="catpost-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"> <?php the_title(); ?></a> &bull;  &bull; <?php the_date(''); ?></li>
<?php endforeach; else: ?> </ul>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

編集したらサーバーにアップします。

と以上二つのファイルの作成だけで、カテゴリ別のリスト表示ができました。

表示ページのレイアウトはcssやcategory.phpを編集することで変更できます。
リストのタイトルと年月日の表示については、「WordPressの投稿日時を、好きなフォーマットで表示しよう!日本語&英語のコピペ用サンプル」が分かりやすくて、参考になりました。

上記までの設定でリスト表示は

•「泳いで帰れ」奥田 英朗 • • 2010年4月29日

となります。