カテゴリーや投稿タグ、カスタムタクソノミーの使い勝手を、どどーーーーーーんと向上させてしまうプラグインPS Taxonomy Expanderを公開しちゃいます。
このプラグインは、単一機能ではなく、カテゴリーなどのタクソノミー全般に対し、実運用時のユーザビリティーを向上させる複数の機能から成り立っています。
機能一覧
1.カテゴリー・階層化タクソノミーの登録方式を変更可能に
カテゴリーや階層化を有効にしたタクソノミーの選択方式を、タクソノミー毎に、複数選択(チェックボックス)または、単一選択(ラジオボタン)から選べるようにします。
サイトの構造や見栄えなどによっては、複数のカテゴリーを選択されると、表示上不整合が発生するケースもありますが、そういった場合でも、ユーザーの運用に頼るのではなく、タクソノミーの選択方式自体をラジオボタンに変更し、ヒューマンエラーを軽減させます。
2.タクソノミーのデフォルト設定
カテゴリー以外のタクソノミーについて、デフォルトの分類を設定可能にします。
WordPressのカスタムタクソノミーにデフォルトを設定してみると同等の機能ですが、プラグイン版ではメディアのタクソノミーについてもデフォルトの設定が可能になっています。
3.メディアのカテゴライズ
メディアに対し、タクソノミーを指定した場合のユーザビリティーを向上させます。
メディアのみに登録され、なおかつ管理画面が有効になっているタクソノミーのメニュー表示。
メディア編集画面でのタクソノミー登録方法の改善。
メディアのカテゴライズ(前編)、メディアのカテゴライズ(後編)と同等機能ですが、プラグイン版では、単一登録方法の反映(ラジオボタンでの登録)が追加されています。
4.現在の表示へのカスタム分類追加
プロフィールページの設定に「現在の状況にタクソノミーを追加」が追加され、有効にするとダッシュボードの現在の表示にカスタム分類を追加表示します。
5.分類の順序指定
Term orderメニューにて、カテゴリーなど階層化された分類の順序をドラッグアンドドロップで指定することが出来るようになります。
6.記事一覧へのカスタム分類表示追加
投稿、固定ページ、カスタム投稿の一覧にカスタム分類での絞り込み機能、カスタム分類の表示を追加します。
設定方法など
プラグインを有効化すると、設定 > 投稿設定 のページに、各投稿タイプ×タクソノミーのデフォルト分類のプルダウンと、タクソノミー登録方法のチェックボックスが表示されるようになります。
初期設定を行いたいタクソノミーのみプルダウンから分類を選択してください。
タクソノミー登録方法は、ラジオボタンで選択させるタクソノミーにチェックを入れて変更を保存してください。
記事一覧にカスタム分類を表示するには、(投稿タイプ名)一覧に表示のカスタム分類にチェックを入れます。
※ 階層化されていない分類ではプルダウンの絞り込みは表示されません。これはWordPress本体が投稿タグでのプルダウンを表示しない仕様に基づいています。
プロフィールページに「現在の状況にタクソノミーを追加」が追加されますので、表示を行う場合はチェックを入れて保存してください。
順序の変更はTerm orderメニューから行います。
- Term orderメニューをクリックしてTerm orderパネルを表示
- カテゴリー以外の場合は、表示される分類名のタブをクリックして分類を選択
- 子の分類の順序を変更する場合は、親となる分類を選択して階層を移動
- 分類名をドラッグして順序を変更。「変更を保存」で変更を確定
表示に反映させる場合は、wp_list_categoriesなどのorderbyパラメータをorderと指定します。
指定例
<?php wp_list_categories( 'title_li=&taxonomy=area&orderby=order' ); ?>
ダウンロード
参考
更新履歴
- 2011.08.04 ver. 1.1.3
- Warning エラーの修正
- 2011.08.04 ver. 1.1.2
- 記事一覧でのカスタム分類絞り込み・表示機能を追加
- 2011.07.26 ver. 1.1.1
- カテゴリー等階層化分類の順序指定機能を追加
- 2011.06.24 ver. 1.0.1
- メディアタクソノミーがギャラリーで編集・保存できない問題を修正
- 2011.05.03 ver. 1.0.0
- 現在の状況へのカスタム分類表示機能追加
- 国際化対応
- Notice、Warning エラーの修正
- 単数形・複数形表示の修正
- 2011.04.28 ver. 0.8.0
- 一般公開
国際化して、久しぶりに公式ディレクトリにでも登録してみようかなあ。。
[追記]
2011.05.03 公式ディレクトリに追加しました。
Hitoshi Omagari様
はじめまして。
視覚的にも機能的にも使いやすく大変便利に使わせていただいております。
1点教えていただきたい事あるのですが、
(single.phpにて)
Term orderメニューで順序を指定した場合、
get_termsで取得した情報は並び順が反映されるのですが、
wp_get_object_termsもしくはwp_get_post_termsで情報を取得すると並び順が反映されません。
パラメーターは array( ‘orderby’=>’order’ )で指定しております。
仕様としてwp_get_object_termsもしくはwp_get_post_termsでは効かないのでしょうか?
※WordPress バージョン 3.03
※PS Taxonomy Expander バージョン 1.1.4
記事に紐付くターム情報取得のため、一覧がでてしまうget_terms以外の方法を探しおります。
お忙しい中恐縮ですが何卒よろしくお願いいたします。
MEさん、ありがとうございます。
WordPressの関数の仕様で、wp_get_object_termsおよびwp_get_post_termsでは、orderbyパラメーターでorderを指定しても無視されてしまいます。また、両関数はキャッシュ機能を使わずデータベースへのクエリーが必須になるため、あまり効率的とは言えません。
get_the_categoryをカテゴリーid順に取得するようにするをちょっくら応用して
で試してみて下さい。
jim912様
ご返信いただきありがとうございます。
ご教授いただいた内容をfuntion.phpに記載し、get_the_termsで試してみたのですが、上手くいきません。。
タクソノミー名:serviceで下記のようなソースなのですが、
‘orderby’=>’order’の指定方法が間違っているのでしょうか。。?
get_the_termsでorderbyパラメーターがないようなので
そもそもTerm orderメニューによる並べ替えではなく、
TermIDで並べ替え管理という事になりますでしょうか。。
見当違いでしたらすいません。
何卒よろしくお願いいたします。
—–
<code>
<?php
if ( $terms = get_the_terms($post->ID, ‘service’, array( ‘orderby’=>’order’ ) ) ) {
echo ‘<ul>’;
foreach ( $terms as $term ) {
echo ‘<li class=”‘. esc_html($term->slug) .'”>’ . $term->description . ‘</li>’. PHP_EOL;
}
echo ‘</ul>’;
}
?>
</code>
——
先程記載したコメントで、
タグは本コメント用に記載したものです。(念のため)
MEさん
本ブログに適用してみましたが、問題なく動作しています。
https://www.warna.info/archives/2158/
でのカテゴリー表示は、通常名前順となるため、「WordPressの小技」が先に表示されますが、先のコードによって、表示順が変わっています。(get_the_categoryは内部的にget_the_termsが呼ばれるためカテゴリーの表示でも適用されます。)
記述ファイル、記述内容、他のプラグインやカスタマイズとの競合など確認してみてください。
jim912様
ご返信いただきありがとうございました。
jim912様の環境で正常に動作するとの事で、
かなりいろいろ試してみたのですが、やはり上手くいきませんでした。。
他プラグイン、カスタマイズなど排除する為に、
全てのプラグインを停止し、テーマもデフォルトの「twentyten」の最上部付近に埋め込むようにしました。
function.phpに関しても最上部に記述しております。
あとは記述方法かと思うですが、シンプルに以下で試しているのですが
cat_name . ' ';
}
?>
この記述方法ですと、どのように「orderby=order」を指定すれば良いでしょうか。。?
あまりご迷惑をおかけしても申し訳ないので、
このあたりで最後にしたいと思います。
何卒宜しくお願いいたします。
度々失礼いたしました。コードをそのまま入れてしまいました。
正しくは以下になります。
<?php
foreach((get_the_category()) as $category) {
echo $category->cat_name . ' ';
}
?>
jim912様
解決いたしましたお知らせさせていただきます。
教えていただいたコードではないのですが、
以前jim912様が書かれたWordPressのget_the_categoryの取得順をカスタマイズするを参考に、
get_ordered_termsに各種パラメーターを入れて希望通りの動作ができるようになりました。
教えていただいたコードで動かなかった原因は不明のままですが、
こちらで実現できましたので解決とさせていただきます。
突然の質問にもお応えいただき本当にありがとうございました。
いろいろ勉強にもなりました。。
今後ともプラグインの方愛用させていただきます。
ありがとうございました。
プラグイン製作者様
お世話になっております。
このプラグインに関してなんですが、PHP5.4環境で有効化できません。
以下のエラーが表示されます。
Fatal error: Call-time pass-by-reference has been removed in /home/webmaster/public_html/wp-content/plugins/ps-taxonomy-expander/ps-taxonomy-expander.php on line 414
PHP5.4環境で使用する事はできないのでしょうか。
お忙しいところ申し訳ありませんが、ご確認よろしくおねがいいたします。