お知らせ

PHPによるWordPressカスタマイズブック(WordPress 3.x対応版)2010年9月24日

PHPによるWordPressカスタマイズブック(3.x対応)」が発売されました。
WordPressのテンプレートにPHPのプログラムを書いてカスタマイズする方法や、WordPressのデータベースにPHPでアクセスする方法、またWordPressのプラグインの開発方法など、WordPressをより深く活用したい方に最適な一冊です。
WordPress 3.xに対応しています。

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

SuperSortプラグイン RC1(その2)

| コメント(9) | トラックバック(0)

SuperSortプラグインRC1では、テンプレートタグの追加や改良も行っています。
今日はそれらについて解説します。
なお、RC1の解説は今日で終わりです。

1.MTSortedEntries/MTSortedPagesタグにoffset/lastnモディファイアを追加

ブログ記事/ウェブページを並び順に沿って出力するには、それぞれMTSortedEntries/MTSortedPagesタグを使います。
これらのタグで、offsetおよびlastnモディファイアを使えるようにしました。
offset/lastnモディファイアの動作は以下の通りです。

付加するモディファイア動作
offset/lastnともになしブログ記事設定(ブログのメニューの「設定」→「ブログ記事」)の「ブログ記事の表示数」で指定した数の記事を出力します。
lastn="all"のモディファイアを指定すべての記事を出力します。
offset="x"のモディファイアを指定先頭からx件の記事を飛ばして、その後のすべての記事を出力します。
lastn="y"のモディファイアを指定先頭からy件の記事を出力します。
offset="x"とlastn="y"の2つのモディファイアを指定先頭からx件の記事を飛ばして、その後のy件の記事を出力します。

2.カテゴリ/フォルダを並び順で出力するテンプレートタグの追加

カテゴリやフォルダを並び順に出力する場合、これまではMTTopLevelCategories等のタグに、「sort_method="SortCatFld::Sort"」のモディファイアを付加していました。
これに代わって、カテゴリやフォルダを並び順で出力するテンプレートタグとして、以下の4つを追加しました。

テンプレートタグ内容
MTSortedTopLevelCategoriesMTTopLevelCategoriesタグの並べ替え対応版
MTSortedSubCategoriesMTSubCategoriesタグの並べ替え対応版
MTSortedTopLevelFoldersMTTopLevelFoldersタグの並べ替え対応版
MTSortedSubFoldersMTSubFoldersタグの並べ替え対応版

なお、従来どおりの「sort_method="SortCatFld::Sort"」を使う書き方も、引き続き利用することができます。

3.MTSortedEntryCategoriesタグ

ブログ記事が属するカテゴリの一覧を出力するテンプレートタグとして、MTEntryCategoriesタグがあります。
このカテゴリの一覧を並び順に沿って出力するテンプレートタグ(ブロックタグ)として、「MTSortedEntryCategories」を追加しました。

このタグでは、以下の3つのモディファイアを指定することができます。

モディファイア動作
exclude_primary="1"主カテゴリを出力せず、副カテゴリのみを並び順に沿って出力します。
primary_first="1"主カテゴリを最初に出力し、その後に副カテゴリを並び順に沿って出力します。
primary_last="1"先に副カテゴリを並び順に沿って出力し、その後に主カテゴリを出力します。

また、MTSortedEntryCategoriesタグのブロックの中では、MT標準の繰り返し系ブロックタグと同様に、__first__/__last__/__odd__/__even__/__counter__の各変数を使うことができます。

さらに、「__primary__」という変数も使うことができます。
出力するカテゴリが主カテゴリであれば、この変数の値は真になります。

Facebook連携

当記事について「いいね」や「送信」を行っていただけると幸いです。


この記事についてウォールに投稿

トラックバック(0)

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

コメント(スレッド6件,コメント9件)

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

No.1 Gstiles : はじめまして

SuperSortプラグインつかわさせて頂いてます。
質問があるのですが特定のフォルダ以下にあるウェブページをソートした順に表示させることは出来ないのでしょうか?

現在以下のようなテンプレートを使っています。

<mt:Pages folder="テスト" sort_by="created_on" sort_order="ascend">
<h1 id="page-title" class="asset-name"><$mt:PageTitle$></h1>
<$mt:PageBody$>
</mt:Pages>

このテンプレートでテストというフォルダ以下にあるウェブページを作成された順に表示させています。mt:Pagesの代わりにMTSortedPagesを使うとfolderモディファイヤが使えないのでルートディレクトリにあるウェブページが表示されてしまいます。

folderモディファイヤを指定できれば解決するのですが、他に方法はないのでしょうか?

よろしくお願いします。

No.2  : Re:はじめまして

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

ご指摘の件ですが、バージョンアップで対処したいと思います。

No.3 z : (無題)

SuperSort 試しました!
インターフェースがとても使いやすいです。

MT4.23で使用したのですが、プラグインをインストールすると
管理画面上のサブカテゴリーの配列が乱れてしまいます(私の場合かもしれませんが)。
トップカテゴリーには和音順になり影響ないようです。

例えば:
インストール前の配列
A B C D E F G ... Z

インストール後の配列
H O P Q R S T U V ... Z

プラグインを案インストールするとサブカテゴリーがABC/和音順に戻ります。

バグ報告まででした!


No.4  : (無題)

>zさん
こんにちは。

ご質問の件ですが、最初に並び順の初期化はしていただいたでしょうか。

http://www.h-fj.com/blog/archives/2008/10/21-102010.php

No.5 (匿名) : (無題)

藤本様

お手数をおかけします。

並び順の初期化等、藤本様のホームページに記載していた手順を全て踏んでおります。

ただ、今、MTEntryCategoriesタグを使用する場合に、type="primary"という属性を指定してあげると(つまり、<MTEntryCategories>ではなくて、<MTEntryCategories type="primary">とする)、エラーが発生しなくなり、正常に作動するようになりました。

こうした対処が私の環境だけの問題なのかは不明ですが、一応問題は解決できたようです。

お手数をおかけいたしました。

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

MTが真のCMSになるには、藤本様のSuperSortは不可欠です。
今後とも、日本のIT業界のため、ご活躍のほどお願い申し上げます。
しかし、そもそも、シックス・アパート社は、カテゴリーの並び替えに対処したくらいなら、なぜ、ブログ記事の並び替えにも対処しないのでしょう。
これが一番私は不思議です。
いわゆるブログ(日記)から汎用的なCMSへと脱皮するには、カテゴリーやページの並び替え機能は必須の機能だと思われるのですが…

>>zさん
>こんにちは。
>ご質問の件ですが、最初に並び順の初期化はしていただいたでしょうか。
>http://www.h-fj.com/blog/archives/2008/10/21-102010.php

No.6 みのる : (無題)

藤本様

違うスレで返答してしまったようです。

MTEntryCategoriesタグで、MTCategoryArchiveLink とか MTCategoryLabel など、現在のブログ記事に関するカテゴリーのタグを使用できないという件で、ご相談申し上げた者です。

>藤本様
>お手数をおかけします。
>並び順の初期化等、藤本様のホームページに記載していた手順を全て踏んでおります。
>ただ、今、MTEntryCategoriesタグを使用する場合に、type="primary"という属性を指定してあげると(つまり、<MTEntryCategories>ではなくて、<MTEntryCategories type="primary">とする)、エラーが発生しなくなり、正常に作動するようになりました。
>こうした対処が私の環境だけの問題なのかは不明ですが、一応問題は解決できたようです。
>お手数をおかけいたしました。
>ありがとうございました。
>MTが真のCMSになるには、藤本様のSuperSortは不可欠です。
>今後とも、日本のIT業界のため、ご活躍のほどお願い申し上げます。
>しかし、そもそも、シックス・アパート社は、カテゴリーの並び替えに対処したくらいなら、なぜ、ブログ記事の並び替えにも対処しないのでしょう。
>これが一番私は不思議です。
>いわゆるブログ(日記)から汎用的なCMSへと脱皮するには、カテゴリーやページの並び替え機能は必須の機能だと思われるのですが…
>>>zさん
>>こんにちは。
>>ご質問の件ですが、最初に並び順の初期化はしていただいたでしょうか。
>>http://www.h-fj.com/blog/archives/2008/10/21-102010.php

No.7 ちゃこちゃん。 : __odd__がちゃんと動かない

<mt:SortedTopLevelCategories show_empty="1">
<div class="<mt:If name="__odd__">boxleft<mt:Else>boxright</mt:If>">
<mt:categoryLabel />
</div>
</mt:SortedTopLevelCategories>

というソースです。
再構築すると、全部にboxrightがついてしまいます。
これは使えないと言うことなのでしょうか。

No.8  : Re:__odd__がちゃんと動かない

>ちゃこちゃん
こんにちは。

MTSortedTopLevelCategoriesタグは、内部的にはMT標準のMTTopLevelCategoriesタグの処理を利用しています。
そして、MTTopLevelCategoriesタグが、__odd__等の変数に対応していません。
そのため、MTSortedTopLevelCategoriesタグでも__odd__等の変数を利用することはできません。

いただいた事例なら、以下のようにすれば良いはずです。

<mt:SetVar name="__odd__" value="1">
<mt:SortedTopLevelCategories show_empty="1">
<div class="<mt:If name="__odd__">boxleft<mt:Else>boxright</mt:If>">
<mt:categoryLabel />
</div>
<mt:If name="__odd__"><mt:SetVar name="__odd__" value="0"><mt:Else><mt:SetVar name="__odd__" value="1"></mt:If>
</mt:SortedTopLevelCategories>

No.9 ちゃこちゃん。 : 解決しました。

ありがとうございます。
もとは<mt:Categories>でテンプレートを書いていました。
なので「__odd__」も使えていたわけです。
ですが、あとになって並べ替えをしたいと言うことでテンプレートを書き換えました。
問題は別の所にもあり、カスタムフィールドで出しわけをしていたので、その出しわけの際に順番が混ざってしまい、おかしな表示になっていたようです。

というわけで、せっかく教えていただいた方法も使えないので古典的な方法で解決しました。回答いただきましてありがとうございました。

コメントする


Facebookでコメント

試験的にFacebookのコメントフォームを設置しました。