拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
カテゴリーの並べ替えプラグイン for WordPress
2008年7月1日
WordPress 2.5以降をお使いの方は、こちらのバージョンをご利用ください。
WordPressには、標準ではカテゴリーを並べ替える機能がありません。
カテゴリーの管理や並べ替えを行える「Category Manager」というプラグインもあるそうですが、環境によっては動作しないといったこともあるそうです。
当サイトでは、Movable Type用のカテゴリーの並べ替えプラグインをご提供していますが、それと同じような仕組みで、WordPressで動作するものを作ってみました。
カテゴリー名の先頭に連番を振って、カテゴリー名を表示する時点でその連番をカットするものです。
1.インストール
カテゴリーの並べ替えプラグイン for WordPressは、以下のアドレスからダウンロードすることができます。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、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_category | the_category_cfc |
get_the_category_list | get_the_category_list_cfc |
single_cat_title | single_cat_title_cfc |
wp_title | wp_title_cfc |
wp_list_categories | wp_list_categories_cfc |
wp_dropdown_categories | wp_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の各ページを表示してみて、カテゴリーが正しく表示されていることを確認します。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
sayu
早速試させていただきましたが、どうも、「wp_list_cats」というタグを書き換える場合はうまくいきませんね。どうしてでしょう?
壱からsayuへの返信
>sayuさん
こんにちは。
プラグインご利用ありがとうございます。
wp_list_catsタグには対応していません(このタグの処理もdeprecated.phpにあったので)。
wp_list_categories_cfcタグをお使いください。
もみぃ
こちらのプラグインをお借りしました。
ありがとうございました。
並び替えがうまくいったのですが、
サイドのメニュータイトル「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'); ?>
に変えました。
(質問するサイトを間違えていたら、ご指摘ください。)
よろしくお願いします。
壱からもみぃへの返信
>もみぃさん
こんにちは。プラグインご利用ありがとうございます。
ご質問の件ですが、以下のようにすればできると思います。
<?php wp_list_categories_cfc('title_li=&sort_column=name&optioncount=1&hide_empty=0'); ?>
もみぃからもみぃへの返信
さっそくのお返事ありがとうございました。
思い通りの表示ができて、うれしいです。
本当にありがとうございました:pp_01.gif:。
ペーター
はじめまして。並べ替えプラグインを利用しているペーターと申します。とても便利で感動です!
1つバグなのかわかりませんが、気付いたことがあるので報告します。
1ページ内に1カテゴリの記事が複数ある場合に、2回目以降のカテゴリ名の表示がさらに設定バイト数削られてしまいます。
例:1ページに3件同じカテゴリの記事があった場合
カテゴリ名「123456あいうえお」
文字コード「UTF-8」
1件目:あいうえお
2件目:うえお
3件目:お
という感じです。
これはバグでしょうか?それとも私の設定ミスでしょうか?
お時間のある時にお願いします。
それでは失礼いたします。
壱からペーターへの返信
>ペーターさん
こんにちは。
不具合をご指摘いただき、ありがとうございました。
修正したものをアップロードしましたので、差し替えてお使いください。
http://www.h-fj.com/wp_plugin/CutFirstChar_1_01.zip
りくう
WordPressのバージョン2.7を使用しているのですが、何か利用する方法はありませんでしょうか?
試しにプラグインを入れてみたのですが、2.7では使えなかったです・・・
もし2.7でも使える方法などあれば教えて下さい。
よろしくお願いします。
壱からりくうへの返信
>りくうさん
こんにちは。
こちらで試してみましたが、2.7でも動いています。
「使えなかった」とのことですが、具体的にどのような状況でしょうか。
りくうからりくうへの返信
ご回答ありがとうございました。
私は以下の方法でプラグインを入れてみました。
・ファイルの11行目をdefine('CFC_LENGTH', 6);のまま
・WordPressの「wp-content」→「plugins」ディレクトリに、cutfirstchar.phpファイルをアップロードします。
・cutfirstcharを有効化
・Category Managerのプラグインは入れていません。
・010000●●のように6桁の数字を頭に入れてカテゴリ作成
・the_category⇒the_category_cfcに書き換え(他はなかったです。)
でもカテゴリを見ると010000●●のような感じで数字もそのまま表示されてしまいます。
それなので2.7には対応していないのかと思ってしまいました。
何か作業が抜けているのでしょうか?
もし分かれば教えて頂けるとうれしく思います。
よろしくお願いします。
壱からりくうへの返信
>りくうさん
こんにちは。
置換の表に漏れがありました。申し訳ありません。
テンプレートの中に「get_the_category_list」というタグがあったら、それを「get_the_category_list_cfc」に置換してください。
なお、「the_category⇒the_category_cfcに書き換え(他はなかったです。)」とのことですが、おそらく他のタグも使われていると思います。
テーマ内のすべてのテンプレートをもう一度よく調べてみてください。
りくう
テーマ編集内のテンプレートをCtrl+Fで検索して、見つかったものは全て書き換えをしてみましたが数字が残ったままになりました^^;
書き換えが見つからないものもありましたが・・・
すごく便利なプラグインだったので是非使いたかったのですが。
べるもっと・じん。
はじめまして。
先週よりWordPressを使い始めまして、それまで用いていたMovableTypeでお世話になっていたCutfirstcharのプラグインがWordPressでもご用意なされているのを知って、装備させていただきました。
しかし、WordPressをインストールしたものの、フィードがどうしても出力されませんでした。
ネットでの意見を読んで、Windowsのメモ帳で何かのファイルをうっかり編集してしまったからなのかと思い、一からメモ帳ではないテキストエディタを用いてセッティングを行い、再度インストールしました。
しかし、不具合が直りませんでした。
フィードのソースに、冒頭どうしても改行が入って、結果フィードとして認識されません。
私は、プラグインを一つづつ、外してみました。
そうすると、Cutfirstcharを外したときに、正常にフィードが出力されるようになりました。
それで、やむなく現在は、Cutfirstcharを外しています。
これは、不具合なのでしょうか?
残念だと思ったので、コメントさせていただきました。
壱からべるもっと・じん。への返信
>べるもっと・じんさん
こんにちは。
こちらで試してみた限りでは、いただいたような現象は発生しませんでした。
このプラグインをオフにした時点で問題が出なくなったことからすると、このプラグインが他のプラグインとバッティングしているのかも知れません。
なお、WordPressでは、カテゴリの並べ替えは「My Category Order」が良く使われていますので、そちらをお勧めします。
http://wordpress.org/extend/plugins/my-category-order/
べるもっと・じん。
迅速なご検証とご回答、ありがとうございました。
なるほど、、、
ひょっとしたら、私が用いているサーバーが例のxreaであることと、何か関係あるのかもしれません?
ご承知のとおり、xreaでwordpressを動かすと、画像ファイルをアップロードするphpファイル他、いくつかのphpファイルが作動しません。
それで、.htaccessを使って、phpファイルを動かす処理をしています。
アップロードは可能となったのですが、画像をサーバー上に読み込む処理を行うたんびに、wordpressがwarningを出してきます。そのwarningの内容が、cutfirstcharと絡んだものです。
Warning: Cannot modify header information - headers already sent by (output started at /virtual/*****/wp-content/plugins/CutFirstChar_1_01/cutfirstchar.php:318) in /virtual/*****/wp-admin/async-upload.php on line 24
908
*****は、パスです。
アップはできるのですが、気になりました。
私はまだwordpressの中身についてよく知らないので、事情だけ伝えて解決策を考えることができませんが、とりあえず症状の徴候らしき現象として、ここに書いておきます。
どうも、ありがとうございました。