カスタム投稿タイプのタクソノミー・メニューを好みの順番でウィジェットに表示する

備忘録です。

まず、カスタム投稿タイプの作成は、function.phpにコードを書くことも作成できるが、GD Custom Posts And Taxonomies Toolsプラグインを使って作成することもできる。

GD Custom Posts And Taxonomies Toolsをインストールすると、TaxonomyのTermListを表示するウィジェットも追加される。

TaxonomyのTermListのウィジェットを追加するプラグインは他にもあるが、カスタム投稿タイプの作成に上記プラグインを使う方法を選択したので、そのプラグインで追加されるウィジェットを使うことにした。

Term Listの表示順をコントロールする

GD Custom Posts And Taxonomies Toolsプラグインで追加されるWidgetの表示部分のコードを見てみると、結局、get_terms関数で得た結果をwalk_category_tree関数で、表示するHTMLを作成している(みたい)

Term Menu Orderプラグインをインストール

このプラグインをインストールすると、Termに順序をコントロールする数字を入力できるようになります。(ページの順序のように)

そして、get_terms関数の第2引数の配列に’orderby”=>’menu_order’を含めれば、自分で設定した順序で表示されるようになります。

GD Custom Posts And Taxonomies Toolsのウィジェットをカスタマイズ

plugin dir/widgets/gdtt-terms-list/の中にあるファイルが、terms-listウィジェットのフォーム部分の表示。filter.phpに「Sort by」のselectフォームがあるので、optionタグにmenu_orderを追加する。

以下が書き換えたコード

<select id="<?php echo $this->get_field_id('orderby'); ?>" name="<?php echo $this->get_field_name('orderby'); ?>">
<option value="name"<?php echo $instance['orderby'] == 'name' ? ' selected="selected"' : ''; ?>><?php _e("Term name", "gd-taxonomies-tools"); ?></option>
<option value="count"<?php echo $instance['orderby'] == 'count' ? ' selected="selected"' : ''; ?>><?php _e("Posts count", "gd-taxonomies-tools"); ?></option>
<option value="menu_order" <?php echo $instance['orderby'] == 'menu_order' ? ' selected="selected"' : ''; ?>><?php _e("Menu Order", "gd-taxonomies-tools"); ?></option>
</select>


最後のoptionが追加したもの。

これで、WidegetのセレクトフォームのSort byでMenu Orderを選択すれば、自分で設定した表示順でTermリストが表示される。

ちなみに、ID順での表示も選択できるようにするには、オプションに


<option value="" <?php echo $instance['orderby'] == '' ? ' selected="selected"' : ''; ?>><?php _e("Term ID", "gd-taxonomies-tools"); ?></option>


を追加すればよい。(get_terms関数にorderbyのデフォルトはID順なので)

[WPプラグイン]投稿をページへページを投稿へ変換するプラグイン

タイトルどおりのプラグインであるならばp2pConverterというプラグインがありましたが、同じ作者により新しいプラグインができていました。

pTypeConverter

postタイプを変換することができます。WordPress Ver3に搭載された「カスタム投稿」機能に対応して、Post Typeをカスタム投稿で作成したPost Typeにも変換できます。

Movable Type3をCMS的に使用して作成していたサイトをWord Pressに移行したとき、Postをページやカスタム投稿タイプへ変換するのに使用できます。

MT3では、投稿はWPでいうところの「Post」のみで「Page」はありませんでした。ですので、MTをブログではなくて、CMS的に使用してサイトを作成するときは、カテゴリーメニューを表示する時に除外カテゴリーを設定して、ループを2回に分けて回したりと、面倒な事をしていました。

だから、投稿タイプがPostとPageの二つあるWord Pressに移行する理由なんですけど、データの移行したMTのEntryのデータは、WordプレスではすべてPostになります。その投稿タイプをPageに変換する必要があります。

phpMyAdminで書き換えれば、事足りるのですが、プラグインでできると便利です。管理者以外にも作業できますし。

また、既存のPostをカスタム投稿タイプに変換できるのも便利です。

けど、あまりにPostの数が多いと、該当するPostを探すのが大変。phpMyAdminのほうが楽だったり。。。。

Movable Type 3.33からWordPressへの移行

移行の手順は、こちらブログ「固定リンクを変えずにスムーズにMovableTypeからWordPressに移行するまでの作業ログ」を参考にすれば、できます。

もし、固定リンクが変わってもいいならば、上記サイトのすべてのことをする必要がないので、もっと楽です。

画像リンクの保持のほうが難しかったです。移行元のMTでの画像アップするディレクトリが統一されていない場合、そのまま分散したまま移行すればいいのですが、移行のついでに画像保存のディレクトリを整理したいって思うと、クエリで保存ディレクトリを書き変えるよりも、ひとつひとつアップロードしなおすほうが速いかもしれません。

改行処理について

これも、移行元のMTでどのように投稿をしていたかによると思うのですが、HTMLタグを使わずに「改行を変換する」で投稿したPostは、WordPressで移行した後、改行されずに表示されます。

移行元のデータベースを覗くとbrタグやpタグが入っていません。MTではデータベースに保存されたテキストの改行コード(\n)を再構築(出力)の際に、brタグに変換しているようです。

WordPressでも、デフォルトでは同様にデータベースのテキストにはbrタグやpタグがないのが、出力されたWebページにはbrタグやpタグが入っているので、出力の際に改行コードをbrタグやpタグに変換しています。

それを、行っているのがwpautop関数で、この自動変換がどうにも不便で、

たとえば、

  • 複数行の改行が効かない。
  • 意図しない箇所に勝手に<br />や<p></p>が挿入されてしまう。

など、ままならに為、wpautopを無効にして使うのが一般的です。

Disable wpautopというプラグインでwpautopを無効にしていると、MTから移行したPostは改行のない状態で表示されます。

「これは、困ったな」とデータベースのクエリで、改行コードをpタグに変換することを考えていたら、なんの事はありませんでした。

PS Disable Auto Formatting このプラグインで解決です。

けど、デフォルトテーマのTwenty Tenではアーカイブページでは、pタグやbrタグが入らないようです。

アーカイブページや検索結果ページで改行されない件について

Twenty Tenのテンプレートファイルを見ると、アーカイブページや検索結果ページでは、the_excerpt()関数で抜粋が表示されるようになってます。the_excerpt()関数はCodexによると

抜粋文入力欄に記入してあればそれを、抜粋を入力していない場合は投稿内容の最初の 55個の単語までを表示します 。また、抜粋のコンテンツからは HTML タグと画像は取り除かれます。

とのことです。

日本語の場合、抜粋の表示が最初の55個の単語をうまく判定できずに、全文表示されたりして、「抜粋である」ということが伝わりにくい場合もあるので、アーカイブページでも、the_conentで全文表示するようにカスタマイズするか、タイトルだけにするか、いずれにしろカスタマイズが必要ですね。

一般的なブログでは、アーカイブページでも全文表示されるケースが多いですから、そのようにカスタマイズします。

[WPプラグイン]ウィジェットでPHPを使えるようにするプラグイン

プライベートでWordPressをカスタマイズ中。

作業中に見つけたTipsを忘れないように備忘録として、ひとまずこのブログに投稿で残していくことにします。

ウィジェットでPHPコードが使えるようにするプラグイン

PHP Code Widget

未使用。

現在の対応WPバージョン3.0.4

The normal Text widget allows you to insert arbitrary Text and/or HTML code.

一般のテキストウィジェットに、HTMLとPHPコードの実行を許可するよう。

WP PHP widget

未使用

現在の対応WPバージョン3.0.4

プラグインの説明にはPHPコードだけどなく、HTML、JavaScript、Flashも使用を許可すると書いてある。Title欄でも、使用許可できるよう。専用のウィジェットが作成されるよう。

想定する使用方法

独自の機能Widgetを作成を楽にすることができる。

たとえば、直近の12か月分だけのアーカイブを表示するとか。一般のアーカイブウィジェットでは、

wp_get_archives関数に与えることができる引数が限られているので、PHPを使えるプラグインを入れて、関数を呼び出せば、求める結果を表示できる。

ただし、自分で管理しているサイトでのみ使用可。第三者が管理するサイトでは、怖くてPHPやJavaScriptを許可できない。

18年履いたワークブーツの味

18年間1度も手入れをしたことのないワークブーツ
18年間1度も手入れをしたことのないワークブーツ

このブログの修理の投稿を見た友人から「自分の靴もきれいになるやか?」と話を持ちかけられました。

その靴がこの写真。

ワークブーツです。

話によると、購入してから18年間一度も手入れをしたことがないとのことです。

 

ワークブーツ(右)
ワークブーツ(右)
ワークブーツ(左)
ワークブーツ(左)

うーん、確かにひどいです。

しかし、これを修復するにはアドカラーは必要ありません。ミンクオイルで磨けば、よみがえります。

【3150円以上送料無料】もっともベーシック。それでいてハードユーザーも満足させる高品質JEWEL...僕が使っているミンクオイルはこちら。

JEWEL MINK OIL

ワークブーツのようなオイルドレザーはミンクオイルを塗って油分を補給すれば復活します。

では、早速ミンクオイルで磨いてもらいました。

ゴシゴシ磨く
ゴシゴシ磨く

結果こんな感じになりました

After
After
かなり味のあるワークブーツになりました。
かなり味のあるワークブーツになりました。

 

汚れがひどいときは、クリーナーで汚れを落としたほうがいいのでしょう。しかしワークブーツは、本来作業用の靴ですので少々汚れているのも「味」の一つです。

今日、笑っていいとも増刊号を見ていたら、香取慎吾が汚れ加工の黒のコンバース・ハイカットの話をしていました。新品のスニーカーをわざわざ汚して2万円以上の商品にして売れる時代です。

18年履いて、いい味の出たワークブーツになったと思います。バリ渋です。

黒の革靴の色落ち修繕(第2弾)

黒の革靴のつま先修理 with アドカラー に引き続き、もう1足修復しました。使用したのは、コロンブスのアドカラー です。

まずはつま先。

つま先の傷ついた靴(左)
つま先の傷ついた靴(左)
つま先の傷ついた靴(右)
つま先の傷ついた靴(右)
つま先の傷ついた靴(左)修復後
つま先の傷ついた靴(左)修復後
つま先の傷ついた靴(右)修復後
つま先の傷ついた靴(右)修復後

上出来です。

側面の色落ち

側面の色落ち
側面の色落ち

この靴は、買った直後にこのように側面が色落ちしました。

この色落ちは靴墨で磨いても修復できませんでした。

今回、コロンブスのアドカラー を使って修復をしてみました。

この部分は、普通にアドカラーを塗っても、塗料が載りませんでしたので、サンドペーパーで軽く削ってから、アドカラーを塗りました。

アドカラーを塗った後、乾かして靴墨で磨きます。

修復後

黒の革靴の色落ち修復後
黒の革靴の色落ち修復後

すばらしい!!(自画自賛)

 

黒の革靴のつま先修理 with アドカラー

つま先のキズついた靴
つま先のキズついた靴
つま先のキズついた靴
つま先のキズついた靴

革靴は長く履いているのと、つま先にキズが入ります。

この靴は、買ってから4年位かな。通勤用で毎日のように履いていますので、かなりボロボロです。

つま先には、写真のようにキズ入ってしまいました。

アドカラーで修復

では、いつものようにコロンブスのアドカラーで修復してみます。前回の白い靴の修復記事はこちら。

アドカラーを使う前に、クリーナーで汚れを落とします。

今回は、黒なので色合わせは簡単。アドカラーは黒のみ使用です。

キズの凹凸を目立たなくする為に、軽く紙やすりをかけました。

アドカラーを塗った状態
アドカラーを塗った状態

アドカラーを塗った状態です。

一度に塗らずに、水で薄めたアドカラーを複数回分けて塗りました。

靴墨で磨く

その後、靴墨で磨きます。

修理完了
修理完了

キズが深いと、凸凹が残りますね。その場合は、アドベースを使うといいようです。まぁ、僕はこの程度修復できればOKなんで。。。って負け惜しみ。

 

つま先のキズついた靴
Before
After
After

 

縮んだセーターを伸ばす方法

縮んだセーター(Before)
縮んだセーター(Before)

洗濯の仕方が悪かったのか、縮んでしまって着れなくなっていたセーターを伸ばしてみました。

以前ネットで検索して見つけた方法を試してみました。

  1. まず、セーターの裾をタンスの引き出しにはさみます。
  2. 引っ張る側の袖に、長い棒を突っ込みます。
  3. スチームアイロンを当てながら、ひっぱります。

結果は、以下のとおり。


After
After


伸びました。元に戻ったのか、伸びすぎたのかわかりませんが。。。。

ブログを書くにあたり、再度検索して縮んだセーターを元に戻す方法が掲載されていたサイトを探しましたが見つかりません。

自分では、伊藤家の食卓の裏技にあったと記憶していのですが、どうやら違うみたいです。NHKのためしてガッテンだったかなぁ。

伊藤家の食卓では、ヘアトリートメントを使用する方法が掲載されていました。

ちなみに、元に戻るかどうかは、セーターの素材が影響するようで、僕のセーターはウール100%でした。

最短撮影距離を考えてみる

前回と前々会の記事「デジタルカメラのマクロモードとは?」と「Canon PowerShot G11のテレ端マクロ(Richoのカメラと比べてみる)」は、CanonのPowerShot G11とRichoのカメラの比較になっています。

実際、RichoのCX4は魅力的で、PowerShot G11を購入した後も、まだ未練があります。

CX4とG11の選択で迷ったのは、CX4のマクロ撮影機能の評判

Richoのカメラのマクロ撮影は評判がいいです。

始めて使ったデジカメがRichoのCaplio R4でした。あのマクロ撮影に慣れていたので、G11のマクロ撮影はRichoより劣ると感じていました。

その一つが、被写体が遠くにある時にG11では、マクロ撮影モードでは被写体にピントが合わない点でした。しかし、それは前回と前々回の記事の記事を読んでいただければわかるように、それはただ単に、マクロ撮影モードに対する自分の理解不足であっただけで、決してG11の方が劣るわけではありません。

マクロ撮影で重要なのは最短撮影距離

再度、G11とCX4の撮影範囲を比べて見ましょう。

G11は

通常撮影 : 50cm – ∞
マクロ : 1 – 50cm (W)、30 – 50cm (T)
マニュアルフォーカス : 1cm – ∞ (W)、30cm – ∞ (T)

CX4は

通常撮影:約30cm?∞(広角)、約1.5m?∞(望遠)(レンズ先端から)

マクロ撮影:約1cm?∞(広角)、約28cm?∞(望遠)、約1cm?∞(ズームマクロ)(レンズ先端から)

広角側では、どちらのカメラも撮影範囲は1cmから無限遠であるということなので、差はありません。

望遠側では、CX4は28cmまで寄れるけれど、G11では30cmまでしか寄れないので2cmの差があります。

わずか、2cmならば大した差ではないじゃないか

わずか2cmしか差がないのだから、大した違いでは無い。そう思いました。

しかし、良く考えると、CX4のズームは10.7倍光学ズームです。

被写体が大きく撮影(クローズアップ)できるかという点ではどうなのか?

35mm換算での焦点距離を比較してみます。

G11は

28 (W) – 140 (T) mm

CX4は

28(W)?300(T)mm

望遠側の値が2倍以上違います。焦点距離が長くなると、画角が小さくなります。つまり、狭い範囲しか撮影できない。

同じ面積のフィルムに写すのならば、撮影する範囲が狭いほうが大きく映ることになります。

ですから、レンズ先端から距離が同じ30cmで撮影したとしても、最大に望遠にした場合、写真(撮像素子)に写る被写体の大きさは違うってことだと思うのです。

先日、指輪などの小さなものを撮影したのですが、もっと画面いっぱいになるように大きく撮影しようと、ズームは望遠側で被写体に近づくのですが、撮影最短距離を超えてピントが合わないという場面が多々ありました。

大きく撮影したいなら?

ただ単に大きく撮影したいなら、W側(広角側)で1cmまで、近づけるだけ近づいて撮影すればいいじゃないか?

その点では、G11もCX4も、W側(広角側)で1cmまで近づいてもピントが合うし、広角側での画角も同じなので差はないです。(もっとも大きく写せるのが、ワイド端とはかぎらないですが)

G11の場合、W側(28mm)からT側(140mm)へズームしていくと、焦点距離が大きくなれば最短撮影距離も大きくなります。

ですから、近づくことができる被写体であるなら、G11は望遠側での最短撮影距離で撮影するよりも、W側(広角側)で1cmまで近寄るほうが大きな写真(クローズアップした写真)が撮影できます。

望遠ズームで撮影する目的とは

遠くにあって近づくことができない被写体を大きく写す

普通はこれです。この点では、300mmまでズームできるRicho CX4のほうが優れています。

もうひとつの選択肢であったFUJIFILM FinePix F300EXRは24mm?360mmの光学15倍ズームですから、さらに有利。(今気付いたけど、ワイド側は24mmですね)

望遠ズームで撮影する目的はそれだけではない

望遠ズームで撮影する目的は、遠くにある被写体を大きく写すことだけではありません。

望遠側にズームする=焦点距離が長くなる。

  • 焦点距離が長くなれば、画角が小さくなる。
  • 焦点距離が長くなれば、被写界深度が浅くなる。

このような性質があるので、近くにあるものでも望遠ズームで撮影することがあります。
(どのような効果を狙って?というのは、また今度)

望遠ズームでマクロ撮影をする人は、望遠側での最短撮影距離というのも重要だということが、G11を使ってわかってきました。

先ほどのFUJIFILM FinePix F300EXRは24mm?360mmの光学15倍ズームですが、仕様の撮影可能範囲をみると、「う?ん?」と、また悩んでしまいます。

画面いっぱいにしたいならトリミングすればよい

そのような理由で望遠側でマクロ撮影をすることがあるのですが、指輪のように小さな被写体の場合、G11では望遠側マクロでは画面いっぱいに拡大した写真を撮影することはできません。

しかし、Webで使用する目的ならば、大きめの画素数で撮影し後からトリミングをすれば十分に拡大した写真になります。

厳密に言えば、画角が異なるので多少の違いはありますが、トリミングして被写体を画面いっぱいにしたならば背景もほとんど写っていないので、その違いは微々たるもの。相当のこだわりのある人しか、その違いに気づかないですよ。

カメラの個性

35mm換算の焦点距離と最短撮影距離の数字だけを比較すると、RichoのCX4よりG11のほうが劣っていることになりますが、いろいろと調べていると、この二つのスペックとは引き換えに他の部分を犠牲にしている(トレードオフしている)ということがわかってきました。

トレードオフなしに、すべてのスペックを高くしようとすると、コストがかかり製品の価格が上昇します。

しかし、物理的に同時に実現しえないこともあるようで、ある目的(例えばボケ味とか)をかなえるために、その方法がカメラによって違うところが、そのカメラの個性であり面白いところだなと思いました。

カメラに個性があるから、いろいろ欲しくなるでしょうけどね。

デジタルカメラのマクロモードとは?

前回の記事「Canon PowerShot G11のテレ端マクロ(Richoのカメラと比べてみる)」からの続きです。

そもそも、デジタルカメラに搭載されているマクロモードとはどのような原理、または仕組みなのでしょうか

参考になるのは以下の2つです。

マクロモードの原理 – デジタルカメラ – 教えて!gooの良回答に選ばれている回答

コンパクトデジカメのマクロモードについて – 質問・相談ならMSN相談箱のベストアンサーに選ばれている回答

  1. まず、コンパクトデジカメのピントの検出は、コントラスト検出方式という方法を使っている。
  2. コントラスト検出方式は、一眼レフの位相差検出方式とは違い、どちら側にどれだけピントがずれているかとう判断ができない。
  3. だから、とりあえずレンズを前後に駆動して、ボケが大きくなったら反対側に駆動して、ピントが合う場所を探す。

という仕組みで自動でフォーカスを合わせていることだそうです。

コンデジのオートフォーカスでピントを合わせる時って、レンズが行ったり来たりして、ピントが合うのがわかると思います。
モニターを見てたら、最初ボケてて、レンズが動いてピントが合って、動きすぎてまたボケて、また戻って合焦てな具合です。 だから、コンパクトカメラはオートフォーカスでピントが合うのが遅いですよね。
FUJIFILM FinePix F300EXRは、コンデジだけど位相差検出方式を採用しているのでピントが合うのが速い。詳しくは、こちらの デジカメ購入計画 を参考に)

コンデジのオートフォーカスの原理であるコントラスト検出方式は、とりあえず撮影可能範囲である距離を行ったり来たりして、ぴったりとピントが合う位置を探しているということなんです。

では、マクロモードとは何のか?

マクロモードとは、このレンズが行ったり来たりする範囲を区切る為にあるということだそうです。

G11の撮影距離のスペックは

通常撮影 : 50cm – ∞
マクロ : 1 – 50cm (W)、30 – 50cm (T)

通常撮影の設定の時は、「今僕は、50cm以上離れたところにある被写体を撮影しようとしているから、カメラさん50cmから無限遠の範囲でピントが合う位置を探してくださいね」って、撮影者がカメラに支持を出しているようなものです。

マクロの時は、「今僕は、1cmから50cmの距離にある被写体を撮影しようとしているから、その範囲でピントが合う位置を探してくださいね」って撮影者がカメラに支持を出しているようなものだということです。

カメラがオートフォーカス機能でピントの合う位置を探す範囲を区切ってやるのが、マクロモードというわけです。
ジャストフォーカスの場所を探す範囲を区切って狭くすることで、オートフォーカスの速度を速くする、それがマクロボタンでマクロ撮影モードに切り替える目的ということだそうです。

パソコンでいうところの、ハードディスクの中にあるファイルの検索をする時に、ハードディスク全体を検索して探すよりも、どの場所にあるか目星が付いている時は、その場所を指定して検索した方が速いってことと同じです。

PowerShot G11では、マクロモードの時にマニュアルフォーカスに切り替えると、チューリップのマークが消えてしまいます。つまり、マクロモードではなくななるのですが、そもそもマクロモードとは何なのかを理解すると、合点がいきます。ガッテン、ガッテン

ということは、マクロモードにするからボケ味が出せるわけではない

ということになります。

ボケ味がでるのは、「被写体までの距離を近づける」からであって、マクロモードにするからではないということになります。

G11で望遠側でマクロモードにして、50cm以上離れた被写体にピントが合わない場合は、通常モードに切り替えて撮影すればいいと言うことです。

今の所、望遠で離れた被写体に対して、マクロモードではピントが合わないということで、G11がRichoのカメラより劣るということはないということです。

これが正しいかどうかは、リコーのCX4を買って、遠くの被写体に望遠で寄ってマクロモードと通常モードで撮影して結果を比較すればわかります。

知り合いにCX3をもっている人がいるから、検証してみようかな。

しかし、望遠側での最短撮影距離を比べると、

G11は30cm、CX4は約28cm。(ともに、レンズ先端から)

2cm劣ります。(ちなみに、Caplio R4は約0.14mと書いているから、14cmだった!!)

わずか、2cmだから大した違いじゃないじゃない?って思うかもしれないですが、いやいや。。そうわけではなさそうです。

その辺は、次回へ続くということで。。