「あさま」のあからさま(ショートコードその3)で「最新投稿の抜粋」のショートコードを紹介しておりますが、不備がございました。
申し訳ありません。
WordPressに備わっている普通の投稿タイプ「ポスト(post)」だけを抜粋する分には全く問題ないのですが、あとから増設するカスタム投稿タイプには正しく対応していないことに気がついてしまったのです。
経緯と解決(正しくは未解決)が少しややこしいのですが、自らの備忘のため紹介いたします。
不備に気がついたのは、あさまテーマを利用して新たにブログサイトを構築したおかげでした。
サイトに新しくカスタム投稿タイプ「お知らせ」を追加して表示をさせてみたところ、「お知らせ」の抜粋枠上につくタイトルが「最近の投稿」となってしまいました。
「お知らせ」なんだからタイトルも合わせたいと考えて、ショートコードのPHPソースを確認しました。作った当時はカスタム投稿タイプはあまり意識しないなったようで、何でもかんでも「最近の投稿」と表示する仕様になっていました。
「これはつまらんなあ。」と感じて改造を始めてみました。
まずはショートコードにタイトル用のパラメータ「ttl=””」を設けて、任意のタイトルを表示できるようにしました。これは簡単。
でも、考えてみればカスタム投稿タイプを増設する際にラベルを指定するのだから、それを取得して表示してもいいんでないかと余計なことに思い当たりました。
つぎのコードの「’label’ => ‘お知らせ’」の部分に当たります。
array(
'postHead'=>'新着',
'postType'=>'min_news',
'postOptions'=>array(
'label'=>'お知らせ',
'public'=>true,
'has_archive'=>true,
'show_in_rest'=>true,
'menu_position'=>5,
'supports'=>array('title','editor','thumbnail','revisions','author'),
)
),
ラベルの値を抜粋枠上に表示するために調査して、カスタム投稿タイプについた名前(ラベル)を参照するためのメソッドを見つけました。
そこで気がつきました。
「メソッドが別ってことは、カスタム投稿タイプの中のカテゴリーの参照も違うんでないの? め…めんどくさー。」って声に出したんでないかな。
的中。2日ぐらい苦悶しました。まあ、それも日常茶メシのことです。
できることはできたのですが、正確に動作してくれません。
いえ、ちゃんと動作はしている様子なのですが、指定した対象カテゴリーによって出来たり出来なかったりよくわからん動作をします。Wordpressにちゃんと実装されていないのではないかと疑うほどです。
しばらく試行しましたが、この解決については困難?(ほとんど不可抗力)と判断しました。現況、カスタム投稿タイプについては諦めることにしました。
新しいショートコードの記述は次の通りです。
[hustleShort file="include/shortcode/ExtractPost" pst="post" cat="0" txnm="" num="5" chrs="55" ttl="タイトル"]
以前から追加されたのは、前述の「ttl=””」と「txnm=””」です。
ttlは抜粋枠上につく任意タイトルの文字列です。指定があれば最優先で表示されます。
txnm=””は追加登録したカテゴリー機能のタクソノミーです。わかりにくいですよね。つぎのカテゴリー機能を追加するコードの「’txnmName’=>’min_news_cat’」に該当します。
array(
'txnmName'=>'min_news_cat',
'postType'=>'min_news',
'txnmOptions'=>array(
'label'=>'お知らせカテゴリー',
'hierarchical'=>true,
'public'=>true,
'show_in_rest'=>true,
)
),
これを指定して、「cat=”172,182″」とかしてカテゴリーのIDを指定すれば、当該カテゴリーのラベル(「’label’=>’お知らせカテゴリー’」ではありません。)が列記され、その最新投稿が表示されるはずなのですが…、前述した通り今回は諦めました。
よって、「txnm=””」は現在のところ機能してません。カスタム投稿タイプを抜粋表示する場合は「cat=”172,182″」と指定しても「cat=”0″」とされてしまいます。
もちろん普通の投稿タイプでは、カテゴリーのIDを指定がちゃんと利用できます。
あさま開発サイトのフロントページで動作してます。確認まで、カスタム投稿タイプのラベルは「asama.」です。
結局は、そんなに変更があったわけではありませんが、一応の改善を見てちょっとだけバージョンアップをしました。変わったのはショートコードのExtractPost.phpだけです。
あさま開発サイトのダウンロードページにて公開しております。
なーんか、これ系の調整はまだ発生しそうです。(その1)と。そかさ。