完全に自己責任の範疇だけどね。
プラグイン紹介
Intuitive Custom Post Order – WordPress plugin | WordPress.org
固定ページだろうが投稿記事だろうがカスタム投稿だろうが、タクソノミーだろうがタームだろうがなんでも記事の順序を入れ替えられるすげーやつ。
基本的な用途
僕の場合は記事の並び替えが必要な場面はあんまりなくて、「スタッフ一覧」とか「店舗一覧」で順序を気にする時に限られる。
投稿記事は投稿日時の順で全く困らないし、固定ページは手打ちで呼び出してるから別にって感じがある。
つまりすごく限定的なときにメッチャクチャ活躍する。
使用上の注意
アーカイブページとぶつかる。
アーカイブは基本的に投稿順に表示するものなので、固定ページとかで順序弄って表示してたのにアーカイブは並びが違うじゃねえか!ってなる。
更にはアーカイブ以外のページでも、投稿順で表示させてたのに他のやつが順序いじったせいで表示がおかしくなった、まである。
次項でそれについてちょっと書く。
ICPO対応の記事呼び出し(カスタム投稿)
固定ページとかで最新記事を指定数呼び出してなんやかやしたい時。
カスタム投稿名:custompost
タクソノミー名:tax_custompost
指定スラッグ:hogehoge
『カスタム投稿を「custompost」って名前で作成して、それ用のタクソノミーを「tax_custompost」って名前で用意した。それの「hogehoge」ってスラッグ(タグ)を付けた投稿を4記事表示する』をしたいとする。
<?php
$args=array(
'tax_query' => array(
array(
'taxonomy' => 'tax_custompost', //タクソノミーを指定
'field' => 'slug', //ターム名をスラッグで指定する
'terms' => array( 'hogehoge' ) //表示したいタームをスラッグで指定
),
),
'post_type' => 'custompost', //カスタム投稿名
'posts_per_page'=> 4 //表示件数(-1で全ての記事を表示)
);
?>
<?php query_posts( $args ); ?>
<?php if(have_posts()): ?>
<ul>
<?php while(have_posts()):the_post(); ?>
<li><!-- 中身 --></li>
<?php endwhile; ?>
</ul>
<?php else: ?>
無いよ
<?php endif; ?>
こうやって作るとそのままでも表示するし、ICPOでいじっても対応して表示する。
で、次がだめな例。
<?php
$args=array(
'tax_query' => array(
array(
'taxonomy' => 'tax_custompost', //タクソノミーを指定
'field' => 'slug', //ターム名をスラッグで指定する
'terms' => array( 'hogehoge' ), //表示したいタームをスラッグで指定
'order' => 'DESC' //降順
),
),
'post_type' => 'custompost', //カスタム投稿名
'posts_per_page'=> 4 //表示件数(-1で全ての記事を表示)
);
?>
<?php query_posts( $args ); ?>
<?php if(have_posts()): ?>
<ul>
<?php while(have_posts()):the_post(); ?>
<li><!-- 中身 --></li>
<?php endwhile; ?>
</ul>
<?php else: ?>
無いよ
<?php endif; ?>
「order」が入ってるとICPOに干渉された記事が表示されなくなる。
バージョンにより対応されるのかは知らないけど今はそうなってる。
orderは指定できないので、つまりASC(昇順)とは食い合わせが悪いってこと。
そうでなくても「表示順をしっかり記述しときたいから必ず書いてます」って人はちょっと怖い目に合うプラグイン。
対策
サイトを作る人間が把握さえしておけばなんとかなるはずで、ICPO側でも入れ替えを対応させる要素は一覧からチェックすることで指定できる。
だから基本的にはチェックを外しておいて、必要最低限な分だけ有効にすればいいはずなんだけど。
記事投稿する人間が「ええのあるやんけ」って勝手に有効にして使いだすとえらいことになるわけで。
投稿用のアカウントの操作できる範囲を限定すればいいじゃんって話ではあるんだけど、それでマスターアカウントを使わない保証も確実にはないんだよなーって。
環境によっては大丈夫なんだろうけど、小規模なとこだとね。
制作側にできるのは、予め設定画面をSS取っておいて、「触んなよ!」って言っといて、問題が起きた際に「それ見たことか馬鹿かお前」で完全に責任を相手になすりつけて、泣きながら修正する。
っていう。
それしかないよね。
悲しいね。
コメント