WordPress テーマフレームワークについて、最近の変化


f:id:tenman:20120329130335p:image:medium:left

2012の3月に、ワードプレスのテーマフレームワークについて、以下の議論や、レギュレーションの変更がありました


フレームワークを使っている人は、読んでおいたほうがいいかも





一行追加するだけでWordPressをプライベートブログにする方法

ワードプレスブログをプライベートな用途で使いたいという事がある場合、


ベーシック認証を追加したり、非公開ドキュメントにしたりと、いろいろ方法はありますが、手間がかかります


ので、簡単な方法


<?php if ( !is_user_logged_in() ) { exit; } ?>


このコードを、テーマファイルの、functions.phpかindex.php一番先頭に貼り付けます。




これで、ブログにアクセスすると、真っ白な画面




ディレクトリ名は、ワードプレスっぽいものにしてはいけません。


例えば、ディレクトリ名が、imagesやjsだったら、ワードプレスと想像する人は、相当なもんだと思います



画像は、直接アクセスすると見えるので、WordPressと気づかれない事が大事です。



他のブログへリンクはしない、気づかれるので、



検索エンジンにクロールされないように管理画面の設定を忘れずに、



ログインURLを覚えておけば、ログインすれば見えます。


沈黙は金

Raindrops theme and mobile device


モバイルという言葉が、頭からはなれず、Raindropsというワードプレスのテーマの更新で、遅ればせながら、対応を検討し始めています。



テーマファイルが、モバイル対応機能を持っていなくても、WP-Touch等モバイルブラウザのアクセスに対して、適切な表示を実現するプラグインも存在する中で、あえて、テーマファイルで、特別な表示を作る必要性があるのか葛藤しながら、実験的な作業を始めました。



レインドロップスに与えた機能は、ターゲットブラウザ以外からのアクセスがあった場合に、フォールバックビューを提供できるようにしておくというもので、1カラムで、PC用のスタイルシートなどを剥ぎ取った表示を可能にするというものです。




レインドロップスは、固定幅 950px 974px 750px と 100% fluid レイアウトがプリセットされており、fluid レイアウトのリミットは、デフォルトの設定で480pxから1280pxの範囲になります。





      if ( !empty($_SERVER['HTTP_UA_PIXELS'] )) {
        $size = $_SERVER['HTTP_UA_PIXELS'];
      }
      if(!empty( $_SERVER['HTTP_X_UP_DEVCAP_SCREENPIXELS'] ) ){
        $size = $_SERVER['HTTP_X_UP_DEVCAP_SCREENPIXELS'];
      }
      if(!empty( $_SERVER['HTTP_X_JPHONE_DISPLAY'] ) ){
        $size = $_SERVER['HTTP_X_JPHONE_DISPLAY'];
      }

といったコードで、ビュー幅を検出可能な場合に、480pxを下回る幅であれば、フォールバックビューを表示するという簡単なもので、果たして、実用性があるのかどうかも、手探りです。



テーマを利用してくれる人が、こんな場合には、フォールバックビューを表示したいという事が簡単に出来るように、強制的に動作させるための変数も、準備はしています。



誰かうまい使い方を考えてくれないかな、などと考えています。




今、話題の、レスポンシブWEBのように、幅を基準にして、同じ幅の様々なブラウザに対して、表示を行っていくという方法もありますが、現実問題としては、テーマの品質を維持する事が困難になると怖気づいてもいます


chrome and firefox



穏当な方法と考えたので、columns というクラスを追加しました。



CSS3のcolumnsをプリセットしたものですが、fluid layoutなどを選択した時に使っていただくと、ブラウザがサポートしていれば、自動的に段組しますが、サポートしていなければそのまま表示するという機能です



他の、レイアウト機能(YUIのネスティングカラム)との関係があるので、コンテンツに以下のように書き加えてもらおうと考えています

<div class="columns">

コンテンツ
</div>

近日中に公開予定の0.959 または 0.960に機能を含みます

しばらく、このフォールバックビューの使われ方をみてみたいと思っています


ツッコミ アドバイス 歓迎


LESSを搭載したWordPressテーマ


WordPressの公式フリーテーマ obandes を作っているのですが、



今日、WordPressのテーマレビューの結果がやっとアプローブドになり、更新が認められました




今回の更新の目玉は、lessphpの搭載です。
lessphpというのは、CSSプリプロセッサーといわれるものの一つでPHPで動作します




なにが出来るのか?
例えば、こんな事が出来ます

@family: "verdana";
@color: red;
body {
  @mycolor: red;
  font-family: @family;
  color: @color;
  border-bottom: 1px solid @color;
}

スタイルルールを関数化したりすることも出来、CSS3を使うようになってからの、煩雑になったCSSの記述を簡略化することが出来ます



もちろん従来のスタイルルールを記述する事に支障はありません






あまりに突拍子もない変更のため、パーフェクトレビューを受ける事になりました。


このおかげで、見落としていた多くのバグも修正する事が出来ました。





すこし、ほっとした気分です。






ワードプレスのテーマディレクトリに更新が反映するまでに、しばらく時間がかかりますが
(2月17日の朝早くライブになりました。WordPressの管理画面から直接インストールできます)
《待てない人は、Git obandesからダウンロードできます) 》

よかったらお試しくださーい

雑感

昨年から今年にかけて、インターネットでは、様々な耳年間になるような事が起きた。


wikipedia:Stop_Online_Piracy_Actとそれに対する反対運動、一方高止まりしつつあるWordPressブログユーザーを追撃しているという
TumblrPinterestの話題


著作権と引用の自由が鬩ぎあっているといってもいいのかもしれない



この事は、今に始まった事ではなく、いつでもインターネットに付きまとう問題だった。例えば、リンクされたくない自由だとか、ブックマークされたくない自由だとか、様々な議論が行われてきた。



今では、誰でもが使っているだろうと思われるWikiPediaでも、ウィキスキャナが議論を沸き起こしたりもしました。



今年の冬は、ステマなる新語?も覚えた


私自身も、インターネット上の評判を参考にしたりもしますが、
「うまい」と評判の店にいって、もし、まずかったら「二度と行かない」だろうし、私は、いつものように言い勉強になったと思うだけだろう。


 そのような経験は、次は、だまされないという気持ちを生むだけなのだ。


地鶏だと銘打って廃鶏を販売するような商売が、成功するはずはないことは誰でも知っているし、自殺行為といってもいい。
しかし、WEBだからといって、その理屈を捨ててしまう事があるとすると、そそのかすものがいるからだろう。



一方で、TwitterなどのSNSは、3.11東日本大震災の場面で、とても活躍したツールになった。食料の販売や、提供の情報が多数流された事で、その中から、何とか本物の情報を捜そうと利用する人が大勢いた。


閉店しているガソリンスタンドには、何キロも渋滞が出来ていたし、順番をめぐって殺人事件さえ起きた。

地震から多分1週間ほどたった頃、初めて家族の食料を買出しに6時過ぎに家を出た。途中のガソリンスタンドの延々と並ぶ車を脇に見ながら、ポリ缶を持った学生っぽい女性とすれ違った。


私は、彼女に思わず尋ねた。「このスタンド今日は開くの?」


いえ、ネットの情報で、このガソリンメーカーのガソリンが一番早く供給されるという情報があって、とにかく並んでみようと思って来たんです。と答えた。(このスタンドは、実際には、一般のスタンドよりも大分復旧が遅れましたが)



がんばってね、といって分かれたと思うが、そんな当てにならない情報を元に、ポリ缶もってスタンドに灯油を買いに来るなんて、いたたまれない気持ちだった。


9時開店の列に並び、前後に並んだよしみで、いろんな情報交換が行われていた。初めて会った人たちが、情報を真剣にやり取りしている。情報の信頼性を担保するものなど何もない中で、もともと知り合いでもあるかのようにやり取りが行われていた。



正しい情報がわずかなものであっても、その情報の真偽を判断しながら、なにを行うか決められる状況は、情報のない中で、闇雲な行動を起こすより、ずっと安定した判断が下せるだろうと思った。



思い出せば、あの時、情報は希望に近かった

以前パック旅行の日は、1961年イギリスで始まった。○か×か - ミショニポーというエントリを書いた

パック旅行の日という記念日にまつわるエントリーですが、起源が100年ほどずれているというものでしたが、引用を繰り返す事でこのようなことが発生してしまう事があります。

Twitterなどの発言でも、最初のツィートが間違っていたとしても、リツィートされていくとおかしなことになる事はあるかもしれません。


でも、それでも、私は、たまにTwitterを使います。

Twitterの使い方として、正しいのかどうかは解りませんが、例えば、オープンソースの開発者が、どんな発言をしているのかとか、なにに注目しているかとか、興味があるためです。


インターネット検索は、キーワードを必要としますから、自分の思っても見ないような情報を探し出す事が出来ません。TwitterなどのSNSを使う事によって、人をターゲットにして、インターネットのキーワード入力をしなくても、受動的に情報が得られるというのが、魅力です。


OGP、マイクロフォーマット、マイクロデータ、oEmbed など引用のための技術がせめぎあうような年になるのかもしれません。



それは、著作権を否定するという立場からではなく、むしろ現在のWEB検索が持っているキーワードを入力しなければ何も始まらない事を乗り越えていく情報の取得の方法として注目している



だから、WEBクローラがコンテンツをキャッシュする事を許してきたように、この新しい試みは、しばらく許容されてもいいだろうと思う。

WordPress 英文ページの追加


WordPressのテーマファイルを作成していて、閲覧環境が英語の人の閲覧が日本語よりも多く、多言語化したいという気持ちが以前よりあり、今回プラグインを使ったテストを始めたのでメモに残します。



インストール時の不具合をメモしただけのものなので、間違っているかもしれません ご利用の場合には、注意してください



テストしているプラグインは、qTranslate


このプラグインは、どのように多言語化を実現するのか

以下の画像を見てもらうと早いと思います
言語毎のタイトルと本文が表示されるのでそれぞれ入力します


f:id:tenman:20120121110420p:image

URLは、設定によりますが
http://example.com/jaなどでアクセスできるようになります

ブラウザの言語設定を取得する事も出来ます




いわゆるはまりポイントは2つ



プラグインの日本語化ファイルの設定

  言語の設定の中にロケールの設定があります。また付属している日本語用のサンプル.moファイルもqtranslate-ja_JP.moとなっているために、ロケールの設定をどのようにすべきか、困惑する

  WordPressロケール設定は、wp-config.php

define ('WPLANG', 'ja');

と設定してあるのが普通です。

qTranslateのロケールの設定を ja_JP等にした場合、上書きされてしまうという事が起きます
  定数なので、それを上書きするという事は、出来ない事ですが、ワードプレスは、この定数の値をデータベーステーブルに保存してその値を利用するという事を行うため、上書きされたように動作する事があるというのが正しいのかもしれません。

  このようなことになると、どこかでイレギュラーな動作をする可能性があるので、qTranslateのロケールをjaに設定します。(ただ、このようにする事が正しいとまでは言い切れない程度の事しか試していません)
  
ロケールを、jaに設定した事により、moファイルの名前を変更する必要があります。

qtranslate-ja.po
qtranslate-ja.mo

  という名前で、翻訳ファイルを作ります。(poedit等で翻訳ファイルの作成は、問題ないように見えます)




日付表示の設定


  詳細設定を行わないでブログを表示すると、投稿日が正常に表示されませんでした。



メカニズムは解りませんが、the_time()テンプレート関数をテーマファイルで利用している場合、あるいは、the_date()テンプレート関数を使用している場合でも、設定によっては、正常に表示されない事がありました。



詳細設定:日付/時刻の変換
エミュレートされた日付関数を使う、または、エミュレートされた日付関数を使用し、各言語用の定義済みの形式でフォーマットを置き換えます の項目を選択した場合

%Y年%m月%d日%H:%M

という表示になりました
%Y年%m月%d日は、get_the_date()を、%H:%Mは、get_the_time()を使っています

strftime関数の代わりにdate関数を使用、または date関数の代わりにstrftime関数を使用し、各言語用の定義済みの形式でフォーマットを置き換えます。選択したモードに応じて、テーマの追加のカスタマイズが必要になる場合があります。 という項目を選択した場合、
どちらも、

 2011年5月23日05/23/11 

get_the_time('D')使用

という形で狙い通りの表示になりました。



WEB上には、qTrainslateのインストールに関するチュートリアルが結構ありますが、多くの日本語サイトのチュートリアルでは、日付の表示の問題をハマリどころと指摘しています



が、



なぜか、設定すべきと推奨される日付/時刻の変換の選択肢は、異なっているのが実情のようです。




引数として使われているタイムスタンプの値が、20桁、同じタイムスタンプの値を2回分つなげた値になっているものを発見したり、バギーな感じもしますが、


dev版にインストールしてみました。バージョンをチェックしている模様でしたが、このメッセージも重複して2回表示されていました。

The qTranslate Editor has disabled itself because it hasn't been tested with your Wordpress version yet. This is done to prevent Wordpress from malfunctioning. You can reenable it by clicking here (may cause data loss! Use at own risk!). To remove this message permanently, please update qTranslate to the corresponding version.

おおむね動作しています。

WordPress 3.3.1日本語版
テーマ:Raindrops

1月31日 追記
コメント一覧
f:id:tenman:20120131201112p:image

WordPressにTwitterのつぶやきを貼り付ける

http://www.odekake.biz/wp/?p=3529

via kwout



3.3.1 動かないなぁ、なんで

WordPressの機能を使って、Tweetを貼り付ける方法を説明します。




WordPress(3.3)は、oembedをサポートしているので、簡単につぶやきを貼り付ける事が出来ます。



twitterのつぶやきの一番下の行の最初の、日付のリンクのURLをコピーします

https://twitter.com/#!/mathzoo/status/150006529800671233

コピーしたURLを投稿に貼り付けます。リンクのタグなどは必要ありません。



表示されない時には、以下の点を確認しましょう。


WordPress ダッシュボードのメニューから 設定 / メディア を開いて 埋め込みの項目を確認します。

自動埋め込みのチェックを入れて

埋め込みファイルの最大サイズ の 幅 と 高さを セットします。


幅がセットされていない時には、つぶやきは うまく貼り付きません。