前回の「あさま」のあるある(編集ブロックプラグイン 補足)の執筆を始めた頃は「Wordpressの開発周りはこれで一息をつけるかなあ。」と思っていました。
そしたらふと、「あさま」のあからさま(ショートコードその3)の「最新数件の任意投稿抜粋」みたいに他サイトのRSSからコンテンツを引っ張って来れたら「便利くない?」と思いついてしまったのです。(あらあら。)
でもって、すぐに調査し、開発を始めてしまいました。参考にさせていただいたのは「複数WordPress運用時に別WordPressの新着記事を読み込み表示する」です。(感謝。)
当初は「わりかし簡単そう。」なーんて余裕こいてましたが、ああ、やっぱりモノづくりの神様の慈愛はそんな細部にこそ潜んでいるものです。
あさまテーマ本体にも調整がありましたので、バージョンをほんの少し上げたいと存じます。あさま開発サイトのダウンロードページをご確認ください。
ここで閑話です。
旧TwitterからXの変更に完全対応しようと思ったのですが、アイコンだけの対応に終わりました。
‘x.com’ドメインとか準備しているのでスッキリとXのショートコードが加えられると期待したのですが、まだまだ整備が済んでないようで、中途半端な姿勢が見て取れました。
これって、Twitterに戻っちゃうんじゃないかな。面倒ばかりかけさせやがって…。
閑話休題、紹介を進めます。
フィードRSSの任意投稿抜粋(独自開発)
ショートコードのソース名は「ExteriorPost.php」です。
「最新数件の任意投稿抜粋」のファイル名が「ExtractPost.php」なので字面が似てます。英語力の貧弱な私は取り違えてしまうことがありますが、機能も表示デザインも似ているので我慢します。「名を以って体と成す。」なんて言うではないですか。
似ているついでに「最新数件の任意投稿抜粋」で少し気になるところがありましたので、アルゴリズムの改善も図りました。あさまテーマの本体にまで及びましたが、大勢に影響のない瑣末な調整です。
双方合わせて、あさま開発サイトのトップページで運用試験をしてます。
「フィードRSSの任意投稿抜粋」のショートコードの記述はつぎになります。
[hustleShort file="include/shortcode/ExteriorPost" uri="hustlemousse.com/feed/" num="3" chrs="55" ttl="FEED"]
属性のパラメータは必ずダブルクォテーションで括って記述します。これショートコードのお約束です。以下、各属性の説明です。
- file属性はテーマディレクトリからのPHPソースファイルへのパス(拡張子は不要)です。
- uri属性は取得するフィードRSSのURLです。
- num属性は表示する投稿数です。初期値はは3件です。
- chrs属性は投稿(抜粋内容)の頭から切り出す文字数です。初期値は55文字です。
- ttl属性は任意のフィードブロックタイトルの文字列です。
上の表示は、編集画面の「カスタムHTML」ブロック内へのつぎの記述でなされます。
つぎは本ショートコードであさま開発サイトの投稿タイプ「asama_post」のフィードを3つだけ表示しているものです。
<div class="insert">
[hustleShort file="include/shortcode/ExteriorPost" uri="https://hustlemouse.com/feed/" num="3" chrs="128" ttl="feed of 'hustlemouse.com'"]
</div>
あさまっこテーマでは「class=”insert”」マークにCSSでセレクターを当てて、表示デザインをコントロールしてます。(後述あり。)
ここでuri属性に注目です。「https://hustlemouse.com/feed/」となっています。
hustlemouse.comでは、Wordpress標準の投稿タイプだけを利用しているのでこれで十分なのですが、まじめ?に「hustlemousse.com/feed/?post_type=post」と記述しても同じ結果になります。
この投稿タイプについてなのですが、「あさま」のあさましい(カスタム投稿タイプ機能拡充への経緯)にある通り、あさまテーマでは任意投稿タイプを加えることができるようになっています。(カスタム投稿タイプの登録については、「あさま」のあさましい(実運用検証中ながらも新バージョン公開)にあります。)
たとえば、あさま開発サイトでは「asama_post」という投稿タイプを加えてあります。
じゃあ、「asama_post」のフィードを拾うためには「https://hustlemouse.com/wp160211/feed/?post_type=asama_post」と記述すれば良いと思ってしまいます。でもでも、なんと投稿タイプが増えたからといって、Wordpressは勝手に個別にフィードを増やしてはくれません。
どうやら、「https://hustlemouse.com/wp160211/feed/」とポストの指定をしないと、ごっちゃ混ぜで最新の投稿を取得できるのですが、それではニュースだけをフィード配信したいといった要望には応えてくれません。と、この開発に及んで初めて気がつきました。
「カスタム投稿タイプ機能を実装したもんね。」なんて偉そうに言えたものではありません。陳謝します。
というわけで、投稿タイプを登録すると同時に個別フィードされるという機能をあさまテーマ本体に実装しました。uri属性に任意にポストを指定すれば個別のフィードがなされます。よかったよかった。
それでは、確認まであさま親子丼セットの変更点です。
すでに利用されている場合は、まるっと全部差し替えて、asamito.cssだけ調整することになると思います。
ここら辺の実際については、またブログに投稿しておりません。ご興味のある方はしばらくは自力でお願いします。(丸投げで、すみません。)
function.php
あさまっこテーマの方の’asamito’ディレクトリ内のfunction.phpの最後に新しい記述があります。
/*******************************
RSSにアイキャッチ画像(サムネール)を加えて出力する。
*******************************/
$obj->addThumbnailForRss(false);
このaddThumbnailForRssメソッドを参照する際のパラメータをtrueにすれば、フィードRSSに各投稿のアイキャッチ画像情報が差し込まれます。
asamito.css
CSSの変更は細かいので、テキストエディターで差分を確認してください。
変更があるのは、asamito.cssだけです。(あさま親子丼のパッケージではCSSが一行に圧縮されてますから、ブラウザーから拾うなどしてうまいことやってください。)
今回のショートコードに関しては’div.insert ul.exteriorPosts’というセレクタがドワっと入っていると思います。これを以前のasamito.cssに加えれば大丈夫なはずです。
また、冒頭閑話の旧TwitterからXの対応のために’X’とついたセレクタ入っていると思います。閑話で述べた通りアイコン(独自ウェブフォントの)を差し替えただけなので今は無視しても大丈夫です。
つぎは本ショートコードであさま開発サイトの投稿タイプ「asama_post」のフィードを3つだけ表示しているものです。
feed of 'asama_post'
できました。「やた!これで『フィードRSSの任意投稿抜粋』機能の辻褄が整ったあ。」と思いました。愚かにも…。
「あれれ?」…もっと早く気がついても良いものでした。
投稿タイプが個別になったのを確認していると不思議?なことに気がつきました。頑張ってフィードのRSSに投稿のアイキャッチ画像の情報が入るようにして、一緒に混じっちゃう文字列を正規表現を使ってねんごろにより分けて表示するようにしているのに…。
「なぜ、画像だけ表示されて文字列が何も出ない奴がいんの?それも最近のばっかじゃんか。」と思わず叫びました。そっと。
まじか。せっかく作った編集ブロックプラグインで編集した投稿のフィード(のディスクリプション)に投稿の抜粋が入ってこない!空でした。
すっごいやられた感覚です。これほとんどWordpressご本尊のせーです。って、なにやらバイアスまで入っちゃう。
すが、ここで百戦連敗の経験がものをいいます。(一応、原因調査はしましたよ。ちょっとね。)
「空っぽの時だけ自前で入れてやれば良くない?」と開き直り、インターセプトして観客席でボールを回すことにしました。反則か協働か?
でも、「じゃあ、その時のWordpressは何文字で抜粋をしているの?『続くマーク』もカスタマイズしちゃってるかもしれないよね。だら、動的に取得っきゃないでしょ。」という課題もありましたが、それらもクリアして、ちゃんとフィードができるようになりました。
めでた…、でもですよ。
もともとオリジナル編集ブロックをプラグインとして作ったのは、あさまテーマから独立させたいと考えてのことでした。
全てのブロックではないにしても、これではオリジナル編集ブロックプラグインが独立したプラグインとして成り立たないことになってしまいました。
あさまテーマとセットになるとは、とーても残念です。
あのJSXをPlainに書き直す作業はなんだったのやら…脱力。
だんだんと負けが混んできた印象ですが、とりあえず、最新バージョンのリリースをいたします。
ともあれ、今年中にあさまテーマの開発が一区切りつきそうなことを喜ぶことにします。
次は反省会?投稿にして、開発全体を俯瞰できればと期待します。ソースの解説なんて夢また夢だなあ。この投稿も長すぎだし…。そかさ。