イラストとか, プログラムのことWordPress, マルチサイト

ハニーウィップじゃなくてハニートラップ。
9negimiku160923
引っかかるとネギをブチ込まれます。

それはさておき、前回の予告通りマルチサイトの解説。
wordpressはblogレンタルサービスじゃなく、blogそのものを企業・個人問わず
立ち上げるのに導入も楽で非常に使いやすいんですが
デフォルトの設定だとblogは一つしか立ち上げられません。

普通はblogは一つしか使わないからそれで問題はないのですが
例えばapacheを導入していてバーチャルホスト機能を使って複数サイトを運営したりって言うような
サーバーの使い方をしている所もあるように
blogも同一ドメイン内で複数サイトを運用したいって言う環境もあると思います。
そういう時にはmovable typeの場合はデフォルトで静的サイトもblogも複数運用出来ていたのですが
wordpressではblogサイトを1つ運営するってだけでした。

これは仕様だから仕方がないと思っていたら、wordpressも実は複数運用を出来る設計になっていて
デフォルトだとそのオプションがオフになっていただけでした。

プログラムのことmovable type, WordPress, 過去ログ

過去ログの場所が

■旧

http://mayragna.net/myway/
http://mayragna.net/weblog/old/

■新

http://mayragna.net/weblog/myway/

に変更になりました。
元々過去ログも現行blogのwordpressに移行したかったのですが、過去ログ全件で1500近くあったので
もしwordpressへのコンバーター使ってもエラーが出て過去ログ壊れても困るって思ってたから二の足を踏んでいたのですが
自宅サーバーのOSをXPから10にした時にapache2も64bit、Perlも64bit版にしてweb鯖環境自体も更新してみたら
それが影響してるのかは不明だけども、過去ログのblogシステムであるMovable Typeが動かなくなってしまい
記事自体は静的phpファイルだったから閲覧は可能だったんだけど、単一記事表示の時等に
エラーが出て不具合だらけだったのでどうせMT使えないのならと
記事壊れてもと思ってwordpressに移行を決めました。

結果はご覧の通り、過去ログ2つ分を1つに統合しても何の問題も無く移行できております。
MTバージョンアップの際や、SQLのデータベースソフト変更時にもちょくちょくあった
カテゴリー割当がおかしくなる事も無くwordpressパネェ思ってます。

ただ、MTの時に使っていたテーマ『vicuna CMS』もwordpressにはあるんですが
現行blogのカスタムテーマに使われているので、そのまま適応すると過去ログも見た目が同じになってしまい
現行blog見てるのか、過去ログなのかが分かりづらくなってしまいました。
そこでMTと同じようにしたかったのですが、やはりblogシステム同士の差異のせいで
流石にサクっと同じ見た目には出来なかったので、かなり妥協して近い見た目にして諦めました。

ガッツリ差異を確認してスタイルシートを弄れば完全に一致は可能なんですが、流石に過去ログへの労力としては面倒くさかった…。

今更過去ログを見る人も居ないと思いますが、移行の際にblogpetの記事とコメントは全て削除し
管理者の自分ですら過去ログのコメントチェックはしないので
全記事のコメントは既存コメントを残し、新規コメントは出来ないようにしてあります。
万が一PT2・PT3関連とかの質問あったらこの記事にでも書いて下さい。

現状、過去ログ2つ分の統合の影響でカテゴリーがめっちゃくちゃ多くなってるので
『ゲーム』『ネットゲーム』等の似たカテゴリーを統合して、この辺は徐々に整理していきたいトコロ。

因みにwordpressは初期設定だとblogは一つしか持てませんが、マルチサイトのオプションを付けると
MTと同じくblogをいくつも持てるようになりますが、次回はその辺の備忘録を記録しようかと。

プログラムのことJavaScript, twitter, ウィジェット

blog見ればわかるけど、Twitterウィジェットをまた新しくしました。
MTの方は過去ログだからそのまんまだけど。

以前までは簡易版ウィジェットを拾ってきて、それを独自に見た目カスタマイズして使っていましたが
今回はサイドバーウィジェットを再度使うことに。
サイドバー版は昔blogのサイドバーに使っていましたが、横幅が狭いのと見た目がまったく変えられないので
すぐに簡易版に変えてしまいました。

今回のもぶっちゃけ見た目は変えられなかったのですが
ある程度のカスタマイズは出来たので採用することに。
何より以前までのウィジェットと違い、Twitter公式ページと同様にリアルタイム更新(自動定期更新)なのがウリ。
blog見てる最中も勝手に新着ツイートがあったら反映されるのである。

見た目の不整合はこの際目をつむることにする。

さて、今回のウィジェット、やはりサイドバーを前提しているためか
デフォルトのサイズでは縦長で横幅があまりありません。
とはいえ、以前までのウィジェットと違ってアイコンサイズも大きいし
公式ページ同様、お気に入り、返信、リツイートボタンも全て実装している為に
最小の縦横幅は以前のよりだいぶ広くなってしまっています。
サイドバーのサイズ制限が厳しいblogでは逆に使えないっていう不満が出ていましたが
ウチの場合はサイドバーで使わないので関係ありません。

むしろウチのblogのこの間までの簡易版の改造版では横幅が680pxなので新しいウィジェットでは横幅が足りません。
縦幅はあまり縦に長いと肝心のblogエントリーがスクロールしないと見えなくなるので短いほうがいいです。

というわけで、早速カスタマイズ。
ツイッター公式ページに行くと右上に

ダイヤルのアイコンをクリックして、設定を表示させます。


次に設定項目の中から一番下のウィジェットを選び、右上の新規作成をクリック。

そうするとユーザーウィジェットの設定の画面が開き

ここで見た目のカスタマイズができます。
項目を見ればわかりますが、高さっていう設定くらいしかレイアウトに関する項目がありません。
しかも高さもどんな表記すればドコがどれだけ変わるのかっていうのもわかりません。
せめて(例:400px)とか書いてくれれば単位表記で把握できるのに。

更に高さしか無いことから分かるように、横幅が設定できません。

とりあえずここは色とかテーマを指定する以外は無視して、ウィジェットを作成をクリック。
ドメインも自分のサイト以外はいらないんじゃないかな。

作成をクリックすると、html文が表示されるので
それをblogの設置したい所に貼り付けて使うわけですが
ここで<a>タグにwidthやheightオプションをしていすると縦横幅が設定できます。
なんだ、レイアウトクソ簡単じゃんって思っていたら
何故かある程度の縦横幅は反映されるのですが、ある一定以上、未満の値を指定しても反映されません

例えば縦幅200としていしても320辺りで制限されてしまうとか。
横幅600としてるのに460くらいにされてしまうとか。
これは貼りつけたhtmlの中にあるツイッター公式のwidgets.js内のJavaScriptで
一定範囲のサイズ制限がかけられているからです。

ここでウチのblogで使っていた以前までのウィジェットと同様に
そのjsファイルを直接弄ってカスタマイズすることにします。
以前と同様に、platform.twitter.com/widgets.jsから
jsファイルをダウンロードしてテキストエディッタで開きます。
以前までのwidgets.jsはシンプルな作りでしたが、今回のは複雑すぎて意味がわかりません。

取り敢えず分かるところだけの改変をしようと思うので
まずはs、m、h、monthになってる単位を秒分時間月表記にします。
改行をして無ければ17行目に”s”とか”m”とかの表記があるので、そこを秒前とか分前、時間前とか書けばおkです。
月はその更に後ろの方にjanとかfebとかあるからそこを1~12に。
これら表記の手前に、shortdateとかいった表記があるので、
それらの“%{day}%{month}”という部分を“%{month}%{day}”に直してください。
こうしないと6日10月とかおかしな配置になってしまいます。

ただ、何故かこの改造では「10月 月7日」とか月がダブってしまいます。月なんて表記どこにもないのに。
多分これは日本語圏用のjsファイルを更に呼び出して
部分部分の”month”の表記を月に置き換えて拾ってきた月数字に付属して表記してるのではないかと思う。
このwidgets.jsファイル内でも更にjsファイルをいくつか呼び出しているので。
そこまではちょいと面倒すぎるので突っ込みません。
まぁこのウィジェットから過去ログ見ないとこの月表記はめったに見れないからほっとこう。

次はメインの縦幅横幅のカスタマイズ。
以下のカスタマイズ方法も上記の日本語表記改造と同様で
確実な解析をしたわけではありませんが、たまたま上手くいっただけなのであしからず。

31行目の中盤辺り、w=”***”,x=”***”,y=”***”,z=”***”,A=”***”,B-81,C=16…とかいった箇所。
***には数字が入っています。
ここのw、x、y、zやAの値を変更すれば制限が変わったりします。
おそらく段階的に制限して、wの値より大きな横幅の場合はwの値にする、
wより小さけどxの値より大きい場合はxの値にするといった感じで制限しているのではないかと思う。

ウチでは結果思い通りになれば関係ないので、w、x、yを全部同じ値にしました。
丁度メインページのblogエントリーの横幅が680pxになってるので
これらの数字を全部680にしました。
で、Aは多分最小値の制限。こっちは縦幅が320pxより小さくならなくなってたので250にして
250pxで表示するようにしました。

以上のカスタマイズをしたら保存してサーバーにアップロード。
その後にこのjsファイルを参照するようにウィジェット貼り付けhtmlの
//platform.twitter.com/widgets.jsの部分を
自分がアップロードしたurlに置き換えてください。http:は何故か不要のご様子。

あとは表示してみるだけです。
もし自分がカスタマイズした横幅やらの設定が反映されない場合は
自分のblogに記事ごとのツイッターのツイートボタンを設置してないか確認。

コレ。

こいつがあると、こいつにも同様のツイッター公式widgets.jsファイルを参照するようにしているので
こいつのソース内にあるwidgets.jsファイルの参照URLを
自分の設置したjsファイル参照URLにすれば大丈夫のハズ。
自分はこれに気付くのに2日近くかかりました。。。

他にも参照しているjsファイルを解析していけば
日本語環境の場合に参照するjsファイルに辿り着けるかもしれません。
それらを参照して改造すればもっと踏み込んだカスタマイズが出来るはず。

プログラムのことphp, WordPress, プラグイン, 自宅サーバー

アクセスカウンター側が更新がないならカウンターを交換すればいいという事で
MT時代では出来なかったWordpressならではの柔軟なプラグインを利用してみた。
MTでもプラグインはあるんだが、外部からインストール必要と管理が面倒である。
Wordpressはダッシュボード上からプラグイン検索→インストールと出来るので簡単なのである。

というわけで、アクセス解析としても使えるCounterize IIっていうアクセスカウンターを使うことに。
phpのテキストベースカウンターなので動作が軽いらしい。

インストールするだけで後はウィジェット化するなりして使いたい所に貼り付けるだけ。
ウチではページごとに貼るのが面倒なので、以前のカウンターと同様にウィジェットにPHPのコードが書けるプラグイン
Executable PHP widgetを使ってウィジェット化してサイドバーにつけてます。

だけどこのままだと以前のカウンターと同じだけの機能を持っていないので
以前のカウンターと同様に、トータル、今日、昨日、閲覧中の表示ができるようにします。

何か長くなったので追記に。