wordpress」タグアーカイブ

WordPress4.4で掲示板を作る

2015年12月18日   コメントを残す

以前、「wordpressで掲示板を作る」にWordPressのコメントフォームを利用して掲示板を作る方法を紹介しました。

コメントフォームをそのまま使うと、メールアドレスやウェブサイトの入力項目が表示されます。
メールアドレスが入力必須項目となっていると、掲示板としては気軽にコメントしずらい気がします。
かといって、WordPressのディスカッションの設定では、メールアドレスだけ必須項目から外すということができません。
それで、テンプレートを少し書き直すことで、ウェブサイトの項目を削除し、メールアドレスを入力必須項目から外し、名前だけを必須にするようなフォームを作りたかったのです。

WordPressのメジャー アップグレードの際には、その都度テンプレートのコードを書き直す、という手間さえかけてきたのですが、それが今回、WordPress4.4へのアップグレードからテンプレートの仕様が変わって、以前の方法が通用しなくなってしまいました。

というわけで、何か他の方法はないかと検索したところ、なんと以前よりも簡単なカスタマイズをみつけましたのでメモしておきます。

WordPress4.4で掲示板を作る

掲示板を作成する手順は「wordpressで掲示板を作る」と同じです。
手順②の「メールアドレスは入力必須項目から外し、webアドレスの入力フォームは削除する。」という部分を変更します。

(A),(B)の2パターンメモしておきます。

(A)名前は入力必須にして、メールアドレスは入力しなくても承認されるようにし、ウェヴサイトの項目は削除する場合

  • WordPressのディスカッションの設定で、「名前とメールアドレスの入力を必須にする」のチェックを外します。(チェックを入れるとメールアドレスの項目にも必須マーク(*)が付いてしまうため。)
  • テーマのfunctions.phpに以下のコードを追加します。
  • 自動的に代替メールアドレスが表示されるようになります。

//コメントフォームの変更

// コメントからウェブサイトを削除
function my_comment_form_remove($arg) {
$arg['url'] = '';
return $arg;
}
add_filter('comment_form_default_fields', 'my_comment_form_remove');

//名前は必須項目にする

function preprocess_comment_author( $commentdata ) {
 if ("" === trim( $commentdata['comment_author'] ))
 wp_die('お名前を入力して下さい。');
 return $commentdata;
}
add_filter('preprocess_comment', 'preprocess_comment_author', 2, 1);
/* comment-template.phpの配列$argsのカスタマイズ */
add_filter('comment_form_defaults', 'comment_form_customize_args');
function comment_form_customize_args($args) {
 // コメントフォームの前の文言を変更
 $args['comment_notes_before'] = '

お名前は必須項目です。
メールアドレスが公開されることはありません。

';
 return $args;
}

//メールアドレス項目を入れたときの設定(未入力時は自動でメールアドレスを設定する)

if (basename($_SERVER["REQUEST_URI"]) == "wp-comments-post.php") {
 if ($_POST['email'] == null || $_POST['email'] == '') {
 $_POST['email'] = 'guest@example.com';
 }
}

(B)名前を必須項目にして、メールとウェヴサイトの項目を削除する場合

  • WordPressのディスカッションの設定で、「名前とメールアドレスの入力を必須にする」にチェックを入れます。(名前のところに必須マーク(*)を付けたいので)
  • テーマのfunctions.phpに以下のコードを追加します。

//コメントフォームの変更

// コメントからEmailとウェブサイトを削除
function my_comment_form_remove($arg) {
$arg['url'] = '';
$arg['email'] = '';
return $arg;
}
add_filter('comment_form_default_fields', 'my_comment_form_remove');

/* comment-template.phpの配列$argsのカスタマイズ */
add_filter('comment_form_defaults', 'comment_form_customize_args');
function comment_form_customize_args($args) {
 // コメントフォームの前の文言を変更
 $args['comment_notes_before'] = '

 お名前は必須項目です。

';
 return $args;
}

//自動でメールアドレスを設定する(メールアドレス項目を削除した場合も設定する)

if (basename($_SERVER["REQUEST_URI"]) == "wp-comments-post.php") {
 if ($_POST['email'] == null || $_POST['email'] == '') {
 $_POST['email'] = 'guest@example.com';
 }
}

以前はWordPress本体のテンプレートを2個書き直していましたが、今度はテーマのfunctions.phpに追加記述するだけなので、WordPressの メジ’ャー アップグレードのたびに書き直す必要がなくなり、ちょっと楽になりました。

下記ブログを参考にさせていただきました。
下記ブログを参照して、自分なりのカスタマイズを試してみることをお勧めします。

・WordPressのコメント入力欄から不要な項目を消す方法

ブラウザチェックツールを使ってみたらIE8で完全にアウトだった!!

2015年07月05日   コメントを残す

そろそろHTML5について本気で勉強しなければと本を購入しました。
と、その前に久しぶりにブラウザチェックをすることに。
Windows7を使い始め、ブラウザをGoogle Chromeに変えてからというもの、IEの存在を忘れつつありました。
しかしWeb上ではまだまだIEを使っている人が多いはず。そこでIEに特化したブラウザチェックツールを手に入れることに。

「IEなどの複数のブラウザチェックができる便利な無料ツールまとめ (NESTonline Blog)参照」

上記サイトで紹介されていた、無料ソフトIEテスタ」をインストールしてみました。
これがなかなかの優れもので、IE5.5~11まで一括して動作確認ができます。
ダウンロードサイトはこちら → http://www.my-debugbar.com/wiki/IETester/HomePage

下図がIEテスタ」上の表示画面です。

20150705-1

予想していたことですが、IE5.5と6ではレイアウトがガチャガチャに崩れていて観れたもんじゃありませんでした。でももう対応する能力がなくIE6以前については諦めることにしました。
しかし、残念なことにIE8でも下記図のごとく崩れていました。
いつからこんな姿になっていたのか?
Windows XPのサポートが終了しているとは言え、IE8を使っている人は多いと思われるので何とかしなければと思うのですが、今日のところはどこをどう修正したらよいのか分からずじまい。
しばらくは御見苦しい姿をさらしたままということになりそうです。



こちらは携帯やタブレットなどの表示を確認できるサイト「Responsive Design Testing」です。インストール無し、登録不要、web上で無料で利用できます。お手軽ですね。


XAMPP をver.1.8.2 にアップグレードする

2013年09月28日   コメントを残す

WordPressをカスタマイズするには、自分のPCにサーバー環境があった方が断然やりやすい。サーバー環境を構築してくれるXAMPPは、多くの人に利用されている、お勧めできるフリーソフトです。ザンプと読むらしい。

Apache(Webサーバ)、MySQL(SQLデータベースサーバ)とWebプログラミング言語であるPHPや同目的で使われる>Perlの4つの主要ソフトウェアとphpMyAdminなどの管理ツール、さらにSQLiteなど、いくつかの補助的なソフトウェアとライブラリモジュールが含まれている。(XAMPP – ウィキペディアより)

私が初めてXAMPPをインストールしたのは、2010年のこと。「ヘッダーやフッターを共有する」から始まる長い話」に書いたとおり、四苦八苦してようやくバージョンは1.7.3をインストールしました。
2011年には、ver,1.7.4にバージョンアップするつもりが「xampp最新版インストール覚書」に書いたように、結局ver,1.7.3のままで終わったという、情けない私。
そんなド素人の私でも、これまで毎日XAMPPを活用してきて、私のPCには必要不可欠なソフトウェアとなっています。
WordPressもどんどん進化しているし、そろそろ、XAMPPもバージョンアップしなければならない時ではないか?
というわけで、今回XAMPPを最新版ver.1.8.2にアップグレードすることにしました。

参考にさせていただいたサイトは「プログラミングブログ」の「XAMPP 1.8.0へのアップグレード手順メモ」です。

  1. 1.現在使用中のXAMPPのバックアップをとる。
  2. 2.XAMPPのサイトから最新バージョンをダウンロードする。
  3. 3.XAMPPのコントロールパネルを起動する。
  4. 4.XAMPPのセキュリテイの設定をする。
  5. 5.バックアップの復元
  6. ドリームウィバーのエラー修正

1.現在使用中のXAMPPのバックアップをとる。

現在使用中のXAMPPのフォルダ名を「XAMPP1.7.3」とリネームして、そのままCドライブ直下に保存しておきます。

2.XAMPPのサイトから最新バージョンをダウンロードする。

xampp-0

http://www.apachefriends.org/jp/xampp-windows.html#2671 ⇒https://www.apachefriends.org/jp/index.html にアクセスして、「XAMPP Windows版 1.8.2」のZIP アーカイブ をダウンロードしました。
ネット環境のせいばかりではないかもしれませんが、ウチは〝光"じゃないので、ダウンロードに60分くらいかかりました。
ダウンロードしたzipファイルを解凍して、「XAMPP」のコピーをCドライブの直下に置きます。

3.xamppのコントロールパネルを起動する。

「XAMPP」を開いてxampp-control.exeをダブルクリックし、実行します。

アメリカ国旗とドイツ国旗が表示されますが、アメリカ国旗にチェックが入っていることを確認して、「save」ボタンをクリックします。

コントロールパネルが立ち上がります。
(※旧式のコントロールパネルが利用できるというxampp-control-old.exeは、ver.1.8.2には見当たりませんでした。)

コントロールパネルで「Actions」の「Start」ボタンをクリックして、ApacheMySQLFileZillaを起動させます。この時、新しいプログラムへのアクセス許可を求めるウィルスセキュリテイのメッセージが出たので、「許可する」をクリックします。

http://localhost/xampp/にアクセスしてXAMPPページを開きます。

「日本語」をクリックして、XAMPPの〝ようこそージ”を開きます。

4.XAMPPのセキュリテイの設定をする。

左側のメニュー項目から「セキュリテイ」をクリックすると、下記のようなページが開きます。

ページに表示されているリンクhttp://localhost/security/xamppsecurity.phpにアクセスして、セキュリテイ設定ページを開きます。

MYSQL 項目: “ROOT” のパスワードを設定し、「パスワードを変更しました」ボタンをクリックします。

XAMPPのディレクトリ制御 (.htaccess)のユーザーとパスワードを設定し、「安全なXAMPPディレクトリを作成してください。」ボタンをクリックします。

※参考にさせていただいた「プログラミングブログ」の「XAMPP 1.8.0へのアップグレード手順メモ」では、ここで「外部からのアクセスを禁止する」ために、c:/xampp/apache/conf 内にある httpd.confを修正し、c:/xampp/php/php.iniでsafe_modeをOn に変更していますが、httpd.confファイルは、ver.1.7.3とver.1.8.2とでは書かれているコードが異なりますので、ver.1.7.3と同様には修正できないようです。試してみましたが、「アクセス権限がありません」という403エラーが出てしまい、ローカルのウェブサイトが開けませんでした。その辺の知識が無い私には手に余るので、修正するのはやめました。
私はルーターを使っているから、外部からのアクセスには、まあ安心かと思うのですが、これも自信薄。xamppのver.1.8.2で、外部からのアクセスを禁止する方法を紹介してくれるブログが見つかるのを待つことにします。

設定が完了したら、コントロールパネルでApacheMySQLを「stop」させ、再び「Start」ボタンをクリックして、再起動させます。

再びhttp://localhost/xampp/にアクセスすると、パスワード入力画面が表示されます。
セキュリティー設定の「XAMPPのディレクトリ制御 (.htaccess)」で設定した、ユーザー名とパスワードを入力して、XAMPPページを開きます。左側のメニュー項目からセキュリテイページを開き、ステータスが「安全」になっていることを確認します。

5.バックアップの復元

コントロールパネルでApache、MySQL、FileZilla、Mercury、などを「stop」ボタンで停止させます。

旧バージョンのXAMPP1.7.3フォルダから、以下のファイルをコピーして、最新バージョンのXAMPPフォルダにペーストします。

①バックアップしておいたxampp-1.7.3のhtdocsに置いてある自分のウェブサイトのフォルダを、アップグレードしたxamppのhtdocsにコピーします。

②バックアップしておいたxampp-1.7.3のMercuryMailから、アップグレードしたxamppのMercuryMailに上書きします。(※私の場合は必要なさそうな気がするが、、、)

③バックアップしておいたxampp-1.7.3のmysql/dataから、アップグレードしたxamppのmysql/dataに上書きします。

※「バックアップしておいたxampp-1.7.3のFileZillaFTPから、アップグレードしたxamppのFileZillaFTPに上書きする」を実行したところ下記図のように「匿名のユーザのFTPパスワードが『wampp』のままです。」として、ステータスが「要注意」になってしまいました。そこで上書きしたFileZillaFTPを削除して、ver.1.8.2のFileZillaFTPをコピーし直したら、FileZillaFTPのステータスも「安全」と表示されるようになりました。

コントロールパネルでApache、MySQL、FileZilla、Mercuryなどの「start」ボタンをクリックして起動させ、ローカルホストの自分のウェブサイトにアクセスして、正常に表示されることを確認します。

ドリームウィバーのエラー修復

どの段階で、何が災いしたのか分かりませんが、何度目かに開こうとしたDreamweaverが起動しなくなりました。画面はまったく真っ白の状態。
あれれ?さっきまで、なんてことなく開いたのに~と思っても、開かないものは開かない。

アドビサイトのDreamweaverヘルプに「ユーザー設定フォルダーを再作成する方法(Dreamweaver CS4/CS5/CS5.5/CS6)」という文書がありました。

  • ・Dreamweaver の起動時にエラーが表示される。
  • ・クラッシュまたは予期しない動作をする。

という場合の対処法です。手順は以下の通り。

Dreamweaver を終了します。
以下のフォルダーを開きます。

  • Windows XPの場合
    C:\Documents and Settings\<ユーザー名>\ApplicationData\Adobe\Dreamweaver <バージョン>\ja_JP\Configuration フォルダーを開き、Configurationの名前を ConfigurationOld に変更します。

上記のとおりにすると、新しいConfigurationフォルダが自動生成されます。
再度Dreamweaverを開くと正常に起動しました。なーんだ、簡単!と思ったのもつかの間、Dreamweaverを終了して、もう一度開こうとすると、今度はファイルのスキャンのようなものが始まり、それがなかなか終わらず、挙句に途中でフリーズしてしまう。
タスクマネジャーを立ち上げて見ると、プログラムが応答していない状態になっている。プログラムを強制終了して、もう一度Dreamweaverを開こうとすると、また、スキャンが始まり、フリーズしてしまい、またまた焦ってしまいました。
再々度Dreamweaverを開こうとすると、やっぱりファイルのスキャンなのか読み込みなのかが始まったので、今度は強制終了をせず、画面に表示されている「停止する」ボタンをクリックすると、あっけなくスキャンが停止され、Dreamweaverがするっと起動しました。何だ、これは?ってよく分かりませんが、ともかくその後エラーもなく、Dreamweaverは正常起動するようになりました。
XAMPP1.8.2はコントロールパネルの動きが、旧バージョンに比べてとてもスムーズです。

次回のアップグレードでは、もっとスマートに作業が完了できるようになっていたいものです。

2016.4.21【追記】ご注意ください!

xamppの最新バージョンは2016年4月現在、ver.5.6.19です。
xamppは2015年7月(ver.5.6.11)から、仕様がずいぶん変わってしまったようです。
上記方法で最新バージョンをアップデートしようとしたところ、ローカルでファイルの編集や表示はできるのですが、データベースが開けなくなってしましました。

これは新バージョンのせいなのか、私のデータベースが壊れているせいなのか(その可能性もある)、私にはよくわかりません。
結局最新バージョンをインストールし、下記ブログを参考にしてパスワードの設定をしました。
データベースも新規に作成しなおし、Wordpressも新規にインストールして、テーマや投稿のデータをバックアップから復元するという、結構な手間をかけました。

最新版をインストールしたい方は下記ブログを読んでからにしたほうがいいでしょう。

参考ブログ
「2015年7月からXAMPPの導入手順が分かりにくくなりました!対応の方法」
「【XAMPP】2015年10月から導入手順がまた難解に!対応の方法!securityが無い!」

サイバー攻撃に早まって・・

2013年09月01日   2件の返信

今週頭から夏風邪をひいて、ついに3日間寝込んでいました。発熱が続き一向に良くなる気配がないので、仕方なく今朝は病院に行き、1時間半の点滴。脱水症状と酸素不足だとか。
「夏風邪のウィルスに抗生物質は効かないんだけどね」と言いつつ医者は、二次感染を防ぐためだからと、抗生物質を出してくれましたが、これはちょっと不要な薬だなって思います。

それはともかく、私がウィルスに襲われて弱っている間に、私のブログは大変なことになっていました。 私が利用している「ロリポップ!レンタルサーバー」がサイバー攻撃され、WordPressの利用者に対し不正アクセス、データ改ざんが行われたとのこと。
私のブログも見事に文字化けし、管理画面もぐちゃぐちゃ。管理画面に不正侵入した証にブログタイトルが、「Hacked by Krad Xin」と書き直されています。
まったく弱り目に祟り目というか・・・。

私はサイトに複数個WordPressを設置していますが、今のところ、被害にあったのはそのうちの1個だけ。アドレスにwordpressの文字が入ったものだけでした。
被害が少ないうちにデーターベースのパスワードを変更しておこうとロリポップのデータベースを開こうとしたら、覚えのないパスワードに変えられていました。これもハッカーの仕業か?と焦りましたが、実はロリポップの方で、パスワードとwp-config.phpファイルの設定、及びパーミッションなどを書き換えているようです。

さて、この荒らされたブログをどう修復するか?
どこをどう改ざんされたか分からないブログを修復するよりは、この際、最初から作り直してついでにアドレスからwordpressの文字もなくしてしまおうと、私はブログをまるごと削除してしまいました。
データベースのバックアップがあるから大丈夫、と深く考えもせず、やってしまいました。
しかし、バックアップデータをデータベースにインポートしようと何度試みてももうまくいかない。
何が悪いのか、半端知識では理解できない。
残っているのは、画像無しのテキストデータだけ。

何故ブログを削除する前に、文字化けを修復することを考えなかったのか、悔やまれます。
文字化けは案外簡単に復旧できるようです。ロリポップサイトに、
2013/08/31 改ざんされたサイトの復旧方法について」というお知らせがあることに、あとから気づいて「しまった!早まった」と思いましたが、もう後の祭りです。
データ改ざんが文字化けとウィジェットのテキスト変更程度なら、あとはログイン名やパスワードを変更するだけで良かったかも。もちろん被害がそれだけでおさまっていればですが。
もしかしたら私がハッカーを買いかぶり過ぎていたのかも。もっとスゴイことされるんだって、ビビり過ぎだったかも知れません。

しかし、削除してしまったデータは戻らないので、当分はテキストデータを一つ一つ見直して、画像がPCに残っているものや新たに画像を取得できる投稿について順次アップして行こうと思います。これを機にブログをすっきり整理していければいいかなと。

今回の犯人は自分のFacebookで自分の仕事ぶりを随分自慢しているらしいです。ハッキングしたサイトのURLをリスト化しているというので見てみました。日本のサイトがターゲットにされたのは間違いないようです。 しかし、まあ、犯人のFacebookに対し、「いいね!」を押している人が多いのには呆れますね。

9月2日追記:
夜、ロリポップから「▽サイト改ざんへの対策をお願いいたします – ロリポップ!」http://lolipop.jp/security/というメールがありました。
データの改ざんパターンが多数報告されているそうで、「データ改ざんが文字化けとウィジェットのテキスト変更程度」というわけではなかったようです。やはりハッカーを甘く見てはいけないってことでしょうか。
指定ファイルを開いてみると、「webサイトが改ざんされてしまったら」、以下の作業が必要とのこと。

最後に 次の注書きがありました。

※お使いのパソコンにバックアップファイルがある場合は、一度サーバー上のファイルを削除した後にバックアップファイルをアップロード。その後、ディレクトリのパーミッションを「705」に変更することでも対応は可能です。

もっと早く教えて欲しかった!!!

個別ページにもサイドバーを表示させる

2010年07月21日   2件の返信

wordpressは膨大な量のテーマが用意されていて、無料で選びたい放題、というところも魅力の一つです。デザインも豊富にありますが、テーマの仕様や機能に、それぞれ微妙な違いがあるので選択に迷います。
しかし、まあ、どんなにたくさん提供されても、欲を言い出すときりが無く、完璧にそのまんま使えるテーマって意外とないような気がします。

今私が使っているテーマでは、個別ページを開くとサイドバーが表示されません。wordpressのデフォルトのテーマもそういう仕様になってるので、ま、それが普通なのだろうと思っていたら、個別ページにサイドバーが表示されるテーマも多くありました。
その違いはどこにあるのか、テンプレートをじっと見比べてみると、どうやらsingle.phpにsidebar.phpを読み込む一行があるかどうかだけの違いのようです。

single.phpの変更箇所
最後の行にある<?php get_footer(); ?>の前に<?php get_sidebar(); ?>を追加する。

single.phpを変更しただけだと、カラム落ちするので、style.cssのシングルページ関連箇所で幅や余白の修正をします。