みのる

カテゴリの並び順につきまして

0

標記についてお伺いさせていただきます。

使用しているバージョンは5.2.7です。

「カテゴリの管理」は使用せずにカテゴリを新規作成した場合、MYSQLの「mt_category」テーブルの「category_order_number」では意図する並び順になっているのに、再構築しても並び順が反映されず、最下位に表示されます(また「カテゴリの管理」で確認しますと、変な並び順になっています)。

MYSQL内の各種のテーブルを確認しても、「mt_category」テーブル以外にカテゴリの並び順を保存しているようなものは見当たりません。

ちなみに、藤本 壱 氏の「カテゴリとブログ記事の並べ替え」プラグインを使用しても、たまに同様の現象が発生する場合があります。

カテゴリの並び順はどのテーブルのどのフィールドで保存しているのでしょうか?

返信(3)

| 返信する
  • >みのるさん
    こんにちは。

    category_order_numberフィールドは、拙作のプラグインが追加したフィールドで、MT標準のものではなりません。
    MT標準のカテゴリの並べ替えの機能では、mt_blog_metaテーブルの中で、blog_meta_typeフィールドの値がcategory_orderになっているレコードに保存されます。

    なお、拙作のSuperSortプラグインでは、MT標準の機能でカテゴリやフォルダを並べ替えたときに、category_order_numberフィールドも書き換えるようにしています。
    そちらではそれがたまにうまく動作しないとのことですが、原因は不明です。

    • (追記)
      さっそく、mt_blog_metaテーブルの中身を見てみたのですが、「blog_meta_vblob」フィールドはオブジェクト型?となっており、category_order_numberフィールドは直接に見る(操作)することはできないようです(VBでは開発を容易にするように、Access経由でMYSQLを操作していますので)。


      行き詰まったので、MT6にバージョンアップして、Data APIを利用すればカテゴリの並び替えが可能になるのでは、と考え、いろいろと調べましたところ、藤本様のブログで「PHP/VBA用Data APIライブラリでのカテゴリの並べ替え」というページを見つけました。

      これならできそうです。


      開発が行き詰まったときにいろいろと調査をすると、結局はいつも藤本様のページに辿り着き、それで問題を解決できている感じがします。

      この場をお借りして、心よりお礼申し上げます。

  • 藤本 様

    ご教授、本当にありがとうございました。

    カテゴリの並び順は、カスタムフィールドのような取り扱いになっていたのですね。

    mt_blog_metaテーブルにあったとは今まで気がつきませんでした。

    これで長年の疑問が解決しました。


    なお、藤本様の「カテゴリとブログ記事の並べ替え」プラグインはすばらしいプラグインだと思います。

    先日のMTのプラグインのコンテスト?では「MTAppjQuery」が1位となっていましたが、藤本様の同プラグインのほうが、MTのもっとファンダメンタルな機能を補助するものとして、個人的には1位だと思っております(むしろ、MT自体で同等の機能を標準装備すべきだと思っています)。
    ※もちろん、「MTAppjQuery」もすばらしいプラグインですが。


    実は、MTの管理画面を自分に使いやすいように最適化するため、VB(Visual Studio)で開発しなおしています。
    その際、藤本様の同プラグインと同様の機能も実装したのですが、カテゴリの並び替えだけに不具合が出て困っておりました。

    本当に助かりました。
    ありがとうございます。

返信する


OpenID対応しています OpenIDについて