お知らせ

初体験 Excel VBA2009年2月21日

拙著新刊の「初体験Excel VBA」が発売されました。
ExcelのVBAの入門書で、主にセルやワークシートをVBAで操作する方法に的を絞って解説しています。
仕事の中で良くありそうな事例を取り上げていますので、Excelをお使いの皆様にお勧めです。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

カテゴリーの並べ替えプラグイン for WordPress

| コメント(12) | トラックバック(1)

2008年7月1日
WordPress 2.5以降をお使いの方は、こちらのバージョンをご利用ください。

WordPressには、標準ではカテゴリーを並べ替える機能がありません。
カテゴリーの管理や並べ替えを行える「Category Manager」というプラグインもあるそうですが、環境によっては動作しないといったこともあるそうです。

当サイトでは、Movable Type用のカテゴリーの並べ替えプラグインをご提供していますが、それと同じような仕組みで、WordPressで動作するものを作ってみました。
カテゴリー名の先頭に連番を振って、カテゴリー名を表示する時点でその連番をカットするものです。

1.インストール

カテゴリーの並べ替えプラグイン for WordPressは、以下のアドレスからダウンロードすることができます。

CutFirstChar_1_01.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ダウンロードしたファイルを解凍すると、「cutfirstchar.php」というファイルができます。
このファイルをメモ帳等で開くと、11行目に以下のような行があります。

define('CFC_LENGTH', 6);

この行の「6」が、カテゴリー名の先頭から切り取る文字数を表します。
後でカテゴリーに連番を振りますが、その桁数に合わせて、この「6」を書き換えます。
例えば、連番を3桁で振るなら、この行を以下のように書き換えます。

define('CFC_LENGTH', 3);

ファイルの書き換えが終わったら、WordPressの「wp-content」→「plugins」ディレクトリに、cutfirstchar.phpファイルをアップロードします。
そして、WordPressにログインして、プラグインのページで、このプラグインを有効化します。

なお、前述したCategory Managerプラグインを有効にしていると、カテゴリーの一覧表示が正しく行われなくなりました。
Category Managerプラグインは無効にしておいてください。

2.カテゴリーに連番を振る

次に、カテゴリー名の先頭に半角数字で連番を振って、カテゴリーを並べる順序を決めます。

例えば、「東京」「大阪」「名古屋」というカテゴリーを作り、この順序で並べたいとします。
この場合だと、「010東京」「020大阪」「030名古屋」のように、カテゴリー名の先頭に連番を振ります。

その際、連番の桁数は統一しておく必要があります。
上のように3桁で連番を降る場合、100の位が0であれば、「010」のように連番を振ります。

カテゴリーを階層化する場合は、それぞれの階層で連番を振るようにします。
例えば、以下のようにカテゴリーを階層化したいとします。

  • 東京
    • 新宿
    • 渋谷
    • 池袋
  • 大阪
    • 梅田
    • 難波
    • 天王寺

この場合、1階層目の「東京」「大阪」と、2階層目の「新宿」等のそれぞれに連番を振り、以下のようにすると良いでしょう。

  • 010000東京
    • 010010新宿
    • 010020渋谷
    • 010030池袋
  • 020000大阪
    • 020010梅田
    • 020020難波
    • 020030天王寺

↓カテゴリーに連番を振った例
カテゴリーに連番を振った例

3.テーマの書き換え

次に、テーマの各ファイルの中で、以下のようにテンプレートタグを書き換えます。

書き換え前のテンプレートタグ書き換え後のテンプレートタグ
the_categorythe_category_cfc
get_the_category_listget_the_category_list_cfc
single_cat_titlesingle_cat_title_cfc
wp_titlewp_title_cfc
wp_list_categorieswp_list_categories_cfc
wp_dropdown_categorieswp_dropdown_categories_cfc

タグの名前を変えるだけで、それ以外の部分は変更しません。
例えば、テーマのファイルの中に、以下のようなthe_categoryタグがあるとします。

<?php the_category(', ') ?>

この場合だと、以下のように書き換えます。

<?php the_category_cfc(', ') ?>

なお、上記以外のカテゴリー関連のタグでは、現状ではカテゴリー名の連番を切り取る処理は行っていません(例:list_catsタグやdropdown_catsタグ)。
WordPressのソースコードを見ると、list_catsタグやdropdown_catsの処理は「deprecated.php」というファイルの中にあり、これらのタグは廃止が予定されているものと思われます。

4.表示の確認

ここまでで、このプラグインの導入作業は終わりです。
Blogの各ページを表示してみて、カテゴリーが正しく表示されていることを確認します。

はてなブックマークの情報

トラックバック(1)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/866.

カテゴリのソート方法 http://www.h-fj.com/blog/archives/2007/04/06-115144.php MovableTyp... 続きを読む

コメント(スレッド5件,コメント12件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 sayu : (無題)

早速試させていただきましたが、どうも、「wp_list_cats」というタグを書き換える場合はうまくいきませんね。どうしてでしょう?

No.2  Author Profile Page: (無題)

>sayuさん
こんにちは。
プラグインご利用ありがとうございます。

wp_list_catsタグには対応していません(このタグの処理もdeprecated.phpにあったので)。
wp_list_categories_cfcタグをお使いください。

No.3 もみぃ Author Profile Page: (無題)

こちらのプラグインをお借りしました。
ありがとうございました。
並び替えがうまくいったのですが、
サイドのメニュータイトル「Categories」のすぐ下に
「カテゴリー」というメニューが出て、
それから自分で作ったカテゴリーが表示されているので、
この「カテゴリー」部分を消したいのですが、
できるんでしょうか?
テーマ(小粋空間より)を使っていて、
<?php wp_list_cats('sort_column=name&optioncount=1&hide_empty=0'); ?>
を、
<?php wp_list_categories_cfc('sort_column=name&optioncount=1&hide_empty=0'); ?>
に変えました。
(質問するサイトを間違えていたら、ご指摘ください。)
よろしくお願いします。

No.4  Author Profile Page: (無題)

>もみぃさん
こんにちは。プラグインご利用ありがとうございます。

ご質問の件ですが、以下のようにすればできると思います。

<?php wp_list_categories_cfc('title_li=&sort_column=name&optioncount=1&hide_empty=0'); ?>

No.5 もみぃ Author Profile Page: (無題)

さっそくのお返事ありがとうございました。
思い通りの表示ができて、うれしいです。
本当にありがとうございましたハート

No.6 ペーター : (無題)

はじめまして。並べ替えプラグインを利用しているペーターと申します。とても便利で感動です!

1つバグなのかわかりませんが、気付いたことがあるので報告します。
1ページ内に1カテゴリの記事が複数ある場合に、2回目以降のカテゴリ名の表示がさらに設定バイト数削られてしまいます。

例:1ページに3件同じカテゴリの記事があった場合
カテゴリ名「123456あいうえお」
文字コード「UTF-8」

1件目:あいうえお
2件目:うえお
3件目:お

という感じです。
これはバグでしょうか?それとも私の設定ミスでしょうか?
お時間のある時にお願いします。

それでは失礼いたします。

No.7  Author Profile Page: Re:不具合を修正しました

>ペーターさん
こんにちは。

不具合をご指摘いただき、ありがとうございました。
修正したものをアップロードしましたので、差し替えてお使いください。

http://www.h-fj.com/wp_plugin/CutFirstChar_1_01.zip

No.8 りくう : (無題)

WordPressのバージョン2.7を使用しているのですが、何か利用する方法はありませんでしょうか?

試しにプラグインを入れてみたのですが、2.7では使えなかったです・・・

もし2.7でも使える方法などあれば教えて下さい。

よろしくお願いします。

No.9  Author Profile Page: (無題)

>りくうさん
こんにちは。

こちらで試してみましたが、2.7でも動いています。
「使えなかった」とのことですが、具体的にどのような状況でしょうか。

No.10 りくう : ご回答ありがとうございました。

ご回答ありがとうございました。

私は以下の方法でプラグインを入れてみました。

・ファイルの11行目をdefine('CFC_LENGTH', 6);のまま
・WordPressの「wp-content」→「plugins」ディレクトリに、cutfirstchar.phpファイルをアップロードします。
・cutfirstcharを有効化
・Category Managerのプラグインは入れていません。
・010000●●のように6桁の数字を頭に入れてカテゴリ作成
・the_category⇒the_category_cfcに書き換え(他はなかったです。)


でもカテゴリを見ると010000●●のような感じで数字もそのまま表示されてしまいます。

それなので2.7には対応していないのかと思ってしまいました。

何か作業が抜けているのでしょうか?

もし分かれば教えて頂けるとうれしく思います。

よろしくお願いします。

No.11  Author Profile Page: Re:ご回答ありがとうございました。

>りくうさん
こんにちは。

置換の表に漏れがありました。申し訳ありません。
テンプレートの中に「get_the_category_list」というタグがあったら、それを「get_the_category_list_cfc」に置換してください。

なお、「the_category⇒the_category_cfcに書き換え(他はなかったです。)」とのことですが、おそらく他のタグも使われていると思います。
テーマ内のすべてのテンプレートをもう一度よく調べてみてください。

No.12 りくう : ご回答ありがとうございました。

テーマ編集内のテンプレートをCtrl+Fで検索して、見つかったものは全て書き換えをしてみましたが数字が残ったままになりました^^;

書き換えが見つからないものもありましたが・・・

すごく便利なプラグインだったので是非使いたかったのですが。

コメントする


Movable Type Developer's Guide Volume 1

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」を発売しました。
詳細は特設ページをご覧ください。