カテゴリー: WordPress

WordPress:デフォルトタイムゾーンが無効です

 WordPressのセッティングの話。

 WordPressのダッシュボードにサイトヘルスステータスと言う項目がいつの間にかありました。

 どうやらWordPress5.2から追加されたサイトヘルスという機能の、ダッシュボード項目らしいです。

 そこに警告が出ていたのですね。

デフォルトタイムゾーンが無効です

 と、サイトヘルス画面に出ていました。

 なんでもdate_default_timezone_setで無効にされているとか。二重にセットされていて、それが問題のように見えました。

 微妙に心当たりが。

 スマホのWordPressアプリに下書き保存すると、その時間が投稿時間になるというクセ(バグ?)があり、後でパソコン側で加筆修正して投稿すると、過去の時間の投稿になってしまうと言う現象があったのです。

 もしかしてタイムゾーン設定のせいかなと最初思って、調べたところ、wp-settings.phpのdate_default_timezone_setの行を変えれば良いと言う情報があったので、

 date_default_timezone_set(‘ UTF ‘)を
 date_default_timezone_set(‘ UTF+9 ‘)

 にしていたのですが、これを元の「UTF」に直したら解決し、警告がでなくなりました。

WordPressのタイムゾーンを設定はなぜか二箇所ある……

 調べてみると、WordPressのタイムゾーン設定は

  • WorePress本体>設定>一般>タイムゾーン設定
  • wp-settings.phpの、date_default_timezone_set(‘ UTF ‘)の一行

 この二つがありました。

 他にもPHPの関数でやる方法もあるらしいのですが、それは置いておきます。

 なぜ二つあるのかは、調べてみても良く分からず。どっちでも設定できると言う情報もあるし。うーん……。

 とりあえず、wp-settings.phpの方は放っておいて、本体で設定で「UTC+9」にしておくのが正解だと思います。

 以上、参考まで。

ブログ復活!

 一年ほどブログを閉じていましたが、このたび復活。活動を記録するのに、なんとなく必要だなと。雑文も書けるし。

 さて、WordPressブログを復活させるにあたって、少々手間取りましたので、手順とポイントを書いていこうと思います。以下、WordPress分かる人向け記事。

WordPressを復活させた手順

 さて。ブログを再開させるには、バックアップデータから復活させる必要があります。自分の場合、BackWpupと言うやつを使って圧縮ファイルでとってありました。Webを漁ってやり方を調べると……

  • まずファイルを解凍。前のブログがディレクトリ構造のまま解凍されます。
  • その中の必要なファイルのみをサーバーにアップロード。(アップするとセキュリティ的にまずいファイルがあるらしい……調べて……)
  • サーバーのデータベースを選択して、phpMyAdmin(SQLデータベース操作するやつ)を立ち上げる。
  • インポートタブを選んで、ローカルにある圧縮されたままのsqlファイル(自分の場合はgz圧縮でした)を選択。読み込む。

○問題1:データベースが選択されていません

 ここで一つ問題発生。データベースをセレクトしていないよ!……と言われました。

 調べると、phpMyAdminのSQLタブでSQLコマンドでセレクトすればよろしいと書いてありました。が、なんやかんや操作しているうちに、やらなくても出来てしまい、自動解決。データベースのツリー触っていたからですかね?

 で、WordPressのSQLデータがインポートが完了。

○問題2:投稿記事が復活しない

 データベースが読み込めたので、今度はWordPress側です。WordPressに戻ってみると『データベースの更新が必要です』と言われたので更新。

 しかし、ここで二つ目の問題発生。プラグインとテーマは復活したものの、投稿記事がまるで無い。全然無い。

 あー、もしかして投稿記事だけバックアップ取れてなかったかな?とか思い、小一時間ほど途方に暮れたものの、思い直して『BackWpup 投稿 復活」などと検索してみた。しかし全然それらしい記事がヒットしない。うーん……。

 わからないなりに考えていると、phpMyAdminの構造はどうやらWordPressのデータ構造そのものであることに気付く。もし投稿が残っているなら、データの中にあるはず。

 で、データベースのツリーを良く見ていくと、『post』と書かれたものが見つかった。うん、どう見てもこれが記事でしょう。

 中を見てみると、以前に書いた記事のタイトルらしきものが見つかった。つまり、データはどうやらあるっぽい!

 しかし、色々調べども、全く投稿記事一覧は表示されず。また小一時間ほど途方に暮れる。

 で。ツリーを見ていて気がついた。データテーブルの接頭辞が2種類ある。『wp1』と、もう一つ妙に長いやつ。そして両方に『post』がある。

 postのデータを開いて、記事タイトルと見てみると、どうやら『wp1』の方が古い投稿で、長いやつはついさっき作ったやつらしいことが判明。

 つまり、WordPress用のデータが2つある。なぜだ(インポートしたからさ……)。

 じゃあ、どうすればいいか。消すか、データを指定すれば良さそう。と推測。

 調べました。wp-configで『接頭辞を指定する項目』がある。これだ!……と言うわけで、wp-configをサーバーでゴニョゴニョしてデータを指定すると!

 ……ついに復活!おめでとう!パチパチパチパチ!

 と言う感じで、七転八倒はしませんでしたが、二転三倒ぐらいでWordPressブログが復活したのでした。

 さて、色々整えつつ、書いたり作ったりして行きますかね。

 

WordPressでプレビューが表示されない


下書きした記事のプレビューが出ない症状でしばらく悩んでたんですが、色々いじってるうちにサイト自体が表示されなくなり……おーい

探ってみるとキャッシュがどうこうと言う記事を見つけました。キャッシュ……(プラグインが怪しい)……と言うことでWordPressのキャッシュ系のプラグインを停止。直ったー。

WordPressは便利なプラグインがいっぱいありますが、そろそろバージョンも上がって最適化されて来ているだろうし、なるべく素のまま使うのがいいかもしれませんね。プラグイン止めてみましたが、体感変わらないし。

レスポンシブデザインに対応

ReponsiveIM

まあ……大体出来た……かな。iPhoneからでも使い易くなりました。

レスポンシブデザインとは何か

PCとかiPhoneとか、タブレットとか世の中には色んなサイズの端末があります。

これをCSSを工夫することによってなんとかサイズの違う多様な端末に対応したデザインにしようと言うのが、レスポンシブデザインになります。

詳しくはこの辺読んでもらうとして。

ブラウザの幅を変えてみてもらえれば成果が分かると思います。

何をやったのかと言うと

  • 画面幅が小さくなったら display: noneでサイドバーを消す
  • それより小さくなったらメインの幅を%に
  • トップイメージの画像や文字の位置を%で指定。
  • サムネイルの大(size-large)と中(size-medium)を%表示に
  • iPhone用にヘッダーにメタタグを記述。
    <meta name=”viewport” content=”width=device-width, initial-scale=1″>

みたいなことを作りながら1コ1コ対処してみたらなんとなくそれっぽくなりました。

基本的に幅さえなんとかすればなんとかなります。高さはautoで十分です。

メディアクエリー

画面の幅でCSSを切り替えるのにはメディアクエリーと言うのを使います。
ソース書くとこんな感じ。

幅600ピクセルを超えると幅がauto(本来のサイズ)に切り替わります。

img.size-large{
	width: 100%;
	height: auto;
}
@media screen and (min-width:600px){
	img.size-large{
		width: auto;
	}
}

padding……

なんかいくらやっても横スクロールバーが出やがりまして。凄く謎だったんですが、paddingのせいでした。

paddingと言うのはdivとかの枠の内側に余白を持たせるCSSなんですが、これが元の幅に”足して”サイズを決定するものなんです。

例えば幅300ピクセルにpaddingを左右20ピクセル入れようと思ったら、幅を260ピクセルに変更しないといけません。……誰なんでしょうねこの仕様を考えた人は……。

という謎仕様によってあちこちに微妙なズレがあったんです。最終的にほとんど使わないことにしちゃいましたけど。いや、強敵だった。レスポンシブデザインの大ボスがpaddingだったとは。

もしやってみて、何故か横スクロールしてしまうと言うときはpaddingとかで何かはみ出てないかチェックしてみるといいかと思います。