お知らせ

フリーランスのための青色申告ガイドブック2012年1月11日

フリーランスのための青色申告ガイドブック」を発売しました。
青色申告にしてみたいが、やり方がよく分からないフリーランスの方のための解説書です。
会計ソフトの「やよいの青色申告」を使って、簿記の知識がなくても帳簿付けができるように工夫しました。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

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

カテゴリ/フォルダ/ブログ記事/ウェブページを並べ替えるプラグインβ版(その5)

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

「カテゴリ/フォルダ/ブログ記事/ウェブページを並べ替えるプラグイン」の第5回目として、並び順で前後にあるカテゴリ/フォルダ/ブログ記事/ウェブページを出力するテンプレートタグを解説します。

1.MTSortedEntryPrevious/MTSortedEntryNextタグ

現在のブログ記事の前(Previous)/次(Next)のブログ記事を出力するブロックタグです。
MT標準のMTEntryPrevious/MTEntryNextタグの代わりに使います。
MTEntries系タグのブロックの中や、ブログ記事アーカイブテンプレートの中で使うことができます。
また、ブロックの中では、MTEntry系のタグを使うことができます。

出力されるブログ記事は以下のようになります。

条件 出力されるブログ記事
ブログ記事がどのカテゴリにも属していない場合 どのカテゴリにも属さないブログ記事の中で、前後のブログ記事
ブログ記事がカテゴリに属している場合 そのブログ記事の主カテゴリと同一のカテゴリに属する前後のブログ記事
ブログ記事がカテゴリに属していて、かつMTEntryCategoriesタグのブロックの中でタグを使う場合 ブログ記事が属する個々のカテゴリでの、同一カテゴリの前後のブログ記事
たとえば、ブログ記事がカテゴリAとBに属している場合、カテゴリAの前後の記事と、カテゴリBの前後の記事を出力することができます。

たとえば、ブログ記事アーカイブテンプレートに以下のようなタグを入れると、前後のページへのリンクを出力することができます。

<MTSortedEntryPrevious>
    <p>前のブログ記事は「<a href="<$MTEntryPermalink$>"><$MTEntryTitle remove_html="1"$></a>」です。</p>
</MTSortedEntryPrevious>
<MTSortedEntryNext>
    <p>次のブログ記事は「<a href="<$MTEntryPermalink$>"><$MTEntryTitle remove_html="1"$></a>」です。</p>
</MTSortedEntryNext>

1.MTSortedPagePrevious/MTSortedPageNextタグ

MTSortedEntryPrevious/MTSortedEntryNextタグのウェブページ版で、現在のウェブページの前(Previous)/次(Next)のウェブページを出力するブロックタグです。
MT標準のMTPagePrevious/MTPageNextタグの代わりに使います。
MTPages系タグのブロックの中や、ウェブページアーカイブテンプレートの中で使うことができます。
また、ブロックの中では、MTPage系のタグを使うことができます。

出力されるブログ記事は以下のようになります。

条件 出力されるウェブページ
ウェブページがどのフォルダにも属していない場合 どのフォルダにも属さないウェブページの中で、前後のウェブページ
ウェブページがフォルダに属している場合 そのウェブページと同一のフォルダに属する前後のウェブページ

3.MTSortedCategoryPrevious/MTSortedCategoryNextタグ

現在のカテゴリの前(Previous)/次(Next)のカテゴリを出力するブロックタグです。
MT標準のMTCategoryPrevious/MTCategoryNextタグの代わりに使います。
MTCategories系タグのブロックの中や、カテゴリアーカイブテンプレートの中で使うことができます。
また、ブロックの中では、MTCategory系のタグを使うことができます。

モディファイアを指定しない場合、前後のカテゴリであっても、ブログ記事がないカテゴリはスキップされ、さらにその前後のカテゴリが出力されます。
一方、「no_skip="1"」のモディファイアを付けると、ブログ記事があるかどうかにかかわらず、前後のカテゴリが出力されます。

たとえば、カテゴリアーカイブテンプレートに以下のようなタグを入れると、前後のカテゴリ(ただし、記事があるカテゴリ)へのリンクを出力することができます。

<MTSortedCategoryPrevious>
    <p>前のカテゴリは<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>です。</p>
</MTSortedCategoryPrevious>
<MTSortedCategoryNext>
    <p>次のカテゴリは<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>です。</p>
</MTSortedCategoryNext>

また、上の例でMTSortedCategoryPrevious/MTSortedCategoriNextタグに「no_skip="1"」のモディファイアをつけると、記事のあるなしにかかわらず、前後のカテゴリへのリンクが出力されます。

4.MTSortedFolderPrevious/MTSortedFolderNextタグ

現在のフォルダの前(Previous)/次(Next)のフォルダを出力するブロックタグです。
MTSortedCategoryPrevious/MTSortedCategoriNextタグと同様に、「no_skip="1"」のモディファイアを指定することもできます。

Facebook連携

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


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

トラックバック(0)

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

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

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

No.1 たま : (無題)

同じカテゴリーの最初のエントリーや最後のエントリー、
可能なら指定した順番のエントリーへのリンクを張りたいのですが、
そのようなことは可能でしょうか?

No.3  : (無題)

>たまさん
こんにちは。

今後のバージョンアップの際に、MTSortedEntriesタグにoffsetやlastnのモディファイアの機能を付ける予定です。
これを使えば、ご希望のようなことが可能になります。

なお、ブログ記事と同一のカテゴリの記事を一覧で出力する機能は、すでにあります。

http://www.h-fj.com/blog/archives/2008/11/06-092255.php

No.2 たま : (無題)

同じカテゴリーの最初のエントリーや最後のエントリー、
可能なら指定した順番のエントリーへのリンクを張りたいのですが、
そのようなことは可能でしょうか?

No.4 よたろ : (無題)

以下のタグでMTSortedEntryPreviousとMTSortedEntryNext内の
タグが一切表示されないのですが、
どのように指定すべきなのでしょうか。

<MTSortedEntryCategories>
<MTSortedEntryPrevious><a href="<$MTEntryPermalink$>" title="<$MTEntryTitle remove_html="1"$>">Prev</a></MTSortedEntryPrevious>
<span class="current"><$MTEntryTitle$></span>
<MTSortedEntryNext><a href="<$MTEntryPermalink$>" title="<$MTEntryTitle remove_html="1"$>">Next</a></MTSortedEntryNext>
</MTSortedEntryCategories>

No.5  : (無題)

>よたろさん
こんにちは。

おそらく、ブログ記事の並び順の初期化を行っていないのではないかと思います。
以下のページを参照のうえ、ブログ記事の並び順を初期化してください。

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

No.6 よたろ : (無題)

初期化したらうまくできました。
ありがとうございました。

No.7 かん吉 : Can't call method "order_number" on an undefined valueが出ます。

MT4.261です。
MTSortedEntryPrevious、MTSortedEntryNextタグを使うと、記事作成画面で「確認」ボタンを押すと「Can't call method "order_number" on an undefined valueエラー」が出ます。

記事にカテゴリーを指定しないか、一度記事を保存するとエラーは出なくなります。

保存すればよい話なのですが、ちょっと気持ち悪いので、簡単に直るようであれば、対策法を教えていただければと思います。

No.8  : Re:Can't call method "order_number" on an undefined valueが出ます。

>かん吉さん
こんにちは。

MT_DIR/plugins/SuperSort/lib/Util.pmの53行目を、以下のように変えてください。
なお、「category_id => $cat->id });」の後の「;」を削除することにご注意ください。

書き換え前

my $place = MT::Placement->load({ entry_id => $entry->id,
                                  category_id => $cat->id });

書き換え後

my $place = MT::Placement->load({ entry_id => $entry->id,
                                  category_id => $cat->id })
    or return;
No.9 かん吉 : 無事動きました!

教えていただいた対策をした結果、エラーが出なくなりました!
ありがとうございました!
これからも便利なプラグインを開発してください。

コメントする


Facebookでコメント

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