【生活】今期のドラマを選んだけど一番文字量が多いのはwpの小技【日常】

毎度同じことを書いているので、簡略化します。

相変わらずです、ハイ。

麻雀一番街

今週は勝てなかった印象。
少し現実逃避したくて、1日で3戦打ったりもしました。

合計17戦で着順がトップから順に2回・7回・4回・4回。
平均順位が2.59。
その内、銀河卓が4戦。

ダメです。

Mリーグ

10月5日(木)のさっき~の対局は面白かった。
「今日もダメか…」なんて思いながら見ていた南2局の親番で、ポンテンも入れつつなんとか親番を繋いでトップ目に。
最終的には仲林選手の満貫ツモで再逆転されてしまったけど、見応え十分な1戦でした。

映画

アントニオ猪木をさがして

公式サイト

この映画が気になると妻が言っていたので、調べてみました。
単純に猪木の古い試合を観るだけでなく、ドキュメンタリーあり、再現ドラマありみたいな構成になっている様子。

時間が許せば観に行く可能性ありです。

ドラマ

10月期のドラマ、チェックしました。
VIVANT以外、観ていないまま貯まってしまっているのに…。

今期は2本。

いちばんすきな花

公式サイト

今田美桜ちゃんが観たいだけです、はい。
10月12日(木)スタート。

うちの弁護士は手がかかる

公式サイト

なんだかんだ言って、ムロツヨシのドラマにハズレがあまりないと思うのです。
なので半ばジャケ買い。
10月13日(金)スタート。

アニメ

SPY×FAMILY

公式サイト

待望の2期。
10月7日(土)スタートって、今夜からです!
12月22日公開の劇場版ももちろん行きます。
楽しみ。
…50過ぎたおっさんは「…わくわく!」なんて言わない。

ジム活

結局、9月24日(日)以来、行けてません。
その時間ですら惜しんで仕事しています…。
うん、良くないね、この生活。

仕事の話

備忘録を兼ねて、仕事の話を。

現在抱えているタスクの中で、Wordpressで作られた既存の企業サイトの部分的なリニューアルに着手中。
本番環境以外のテスト環境がないとのことで、自分の作業用環境と評価確認用環境の2つのコピーを用意しました。
何度か部分リニューアルをしているらしく、廃止されたページの残骸が残っていたり、ソースは結構大変な散らかりっぷり。

そんな状態なので、できるだけ既存サイトのデータは触らず、新たに作成した固定ページと更新した固定ページのみWordpressのxmlのインポート機能で移そうと考えていました。
作業用環境から評価確認用環境へデータをインポートした時点で、困ったことが起きた。

作業用環境と移行した先でページIDがズレるのです。

ページIDはbodyのclassにもなっているので、それを利用してページ独自のcssセレクタとして使用するつもりだったのですが…。
それでも実現するために考えられる対応策は以下の3パターン。

  1. 各環境ごとに割当てられるページIDを突き止めて、それをcssに反映
  2. インポートした後、データベースを操作して割り当てられたページIDを強制的に書き換える
  3. ページIDではないページ独自の文字列を生成し、bodyのclassに付与

1は安全に実現はできるだろうが、環境を変えてupする度にcss内のセレクタに使用しているページIDを更新するのは相当な労力となるので却下。
うっかり忘れてしまったら、崩壊したページが表示されるわけだし。

2は安全ではない。
不可能ではないけど、どこにどれだけページIDのデータが格納されているのか、自分で実装したわけではないプラグインによる影響等も考えると未知数すぎて、却下。

すると、3だ。
一番安全かつ確実に実現できそうな気がする。

Google先生に問い合わせたところ、「ページのスラッグをbodyのclassとして付与できるぜ」という回答をいただいた。
おー、それだ!

ちなみにスラッグとは、Wordpressを使用しているサイトのURLの末尾の文字列部分のこと。
ここは自由に設定できるし、単一でなければならないので、今回の目的として都合がいい。

方法は、使用しているテーマのfunctions.phpに以下を追記。

function my_body_class($classes)
{
    if (is_page()) {
        $page = get_post();
        $classes[] = $page->post_name;
    }
    return $classes;
}
add_filter('body_class', 'my_body_class');

これでOK。

あ、もしもこの手段を目的に検索でこのページに辿り着いた方は、すでにbodyにページIDがclassとして付与されているか確認してくださいね。
もしも付与されていなかったら、ほとんどの場合、header.phpのbodyタグに追記する必要があります。

<body <?php body_class(); ?>>

bodyタグを探して、このように追記してくださいね。

これで俺が改装を担当したページでも反映が確認できた。
念のため、他のページもチェック。

…あ。
問い合わせページが”contact”というスラッグになっていて、そのページ内に”contact”というclass要素が既に書かれているようで、完全にページが崩壊していた。
他社が作ったページのソースまで完全に理解している時間はないし、この方法も却下…かと思いきや、閃いた。

他人が想像しずらい独自の文字列+スラッグなら重複することなく目的は果たせるんじゃね?

ということでさっきfunctions.phpに書いた内容を以下のように書き換えた。

function my_body_class($classes)
{
	if (is_page()) {
		$page = get_post();
		$classes[] = 'xox-'.$page->post_name;
	}
	return $classes;
}
add_filter('body_class', 'my_body_class');

‘xox-‘の部分が独自の文字列。
cssのセレクタとして使える文字列であれば、シングルクオーテーション内を好きなように変えていいと思います。

これでどうだ!
全ページでの完全な動作を確認できた。

今後、これは使える小技となりそうなので、備忘録のために残しておきます。
「そんなの常識だぞ」なんて仰る諸先輩方、そうだとしても自力でこの方法に辿り着いたんだから、ビッグアイにルッキングしてください。

ついでに

今書いたこの方法、実はライフハックにも使えます。
っていうか、順序は逆で、ライフハックで下に紹介する方法を使っているから思いついたと言ってもいいかな。

昨今、1つのサービスから顧客情報が漏洩して、他のサービスでも同じパスワードを使用していたためにハッキングされたなんて話、あるじゃないですか。
「複数サービスで同じパスワードを使用しているからいけない」なんて指摘している人もいますが、そのすべてでパスワードを個別のものにしていたら、その管理する労力はなかなかのものです。
ChromeやiOSなど、ブラウザやOSが管理してくれる機能を持っていたりもしますが、それだけではたとえば他人のパソコンを借りてログインしようと思ったときに不便。

じゃ、どうするか。

俺の場合、パスワードを固定の文字列+そのサービス名にしていることが多いです。
たとえば、hogehoge123Yahoo とか hogehoge123Amazon とか。

こうすれば、そのままの情報で他サービスにアクセスされようが、問題ない。
ハッカーはそれを目視&人力で入力しているとも思えないし。

ただ、流出したリストのパスワード欄からそのサービス名の文字列を検索して、ヒットした情報で、他のサービスに置き換えてアクセスしてみる…なんてことが起きたらアウトだけど。
ま、今どきは平文でパスワードが保存されているようなサービスは皆無だと信じているので、きっと大丈夫です。