テーマに沿った投稿をまとめるには、カスタム投稿タイプという仕組みはそれなりに便利です。本稿「WordPressで小説サイト」も一時期カスタム投稿タイプにしようと考えた時期があったのですが1、コメント機能が使えなくなってしまったので諦めた経緯がありました。2
しかし、カスタマイズ性が高いのがカスタム投稿タイプの売りであるはず!やってやれないことはない筈だよね、とひとつ調べてみることにしました。
調べてみるとカスタム投稿タイプにコメント欄を付けることは可能らしいのですが、それにはfunctions.phpでカスタム投稿タイプを定義している部分にコメント欄をサポートするよう命令しなければならないらしいのです。
ところが柳はカスタム投稿タイプを作るときにプラグイン「Custom Post Type UI」(CPT UI)を使用しています。そもそもfunctions.phpなんぞ弄ってません。恐る恐る3functions.phpをあけてそれっぽい記述を探してみたけど見当たらず。ここで既にして半分挫折しかかったのですが、こちらのサイト様に行き着いてようやくわかりました。
Custom Post Type UIの使い方:カスタム投稿タイプ / タクソノミーの設定方法
プラグイン「Custom Post Type UI」の中の設定項目に【投稿を表示】というタブがあるのですが、投稿タイプの名称のすぐ下に【コードを取得】というリンクがあります。ココを叩くと【Custom Post Type UI ツール】の【コードを取得】というタブが立ち上がり、目的の記述を確認することができます。あとはこのコードを functions.php ファイルにコピー & ペーストし、
$args = [
(中略)
"supports" => [ "title", "editor", "thumbnail",
"page-attributes" ,"comments" ],
];
最後の”comments” を記入してやればいいということになります。4
あとは実際にコメント欄を付けるコードをカスタム投稿タイプ用のテンプレートに記述します。何処に記述したらいいのか探すのがこれもまた難儀でしたが、何とか成功しました。ま、普通フッターの直上ですね。5
<?php comments_template(); ?>
それと、忘れてはいけないのが実際の記事を書くときの設定項目で…
□コメントを許可する
のチェックボックスをオン。これでカスタム投稿タイプにもコメント欄が出現する訳です。ためしに今回、「天からキャベツが降ってきた!」最新の投稿「にいちゃんはつらいよ 他10編」にコメント欄を付けてみました。
実のところ、今回こんな大工事をするつもりはなくて…カスタム投稿タイプのテンプレートの日付表示がおかしかった6ものでなんとかこれを修正してやろうとテンプレートをごそごそやってたら上記の疑問を思い出し、たまたま少し時間があったのを幸い取り組んでみた次第。ついでに使ってない(有り体に言えば使えない)テンプレート7を掃除してディレクトリもすっきり。うーん、やっぱり手直しって大事ですねえ。
…とか何とか言いつつ、仕事からも「篝火-」リライトからも逃避している柳でした(笑)
カスタム投稿タイプでコメント欄を作る方法も判ったことだし、本稿「WordPressで小説サイト!」もカスタム投稿タイプに移行しちゃいましょうかねぇ…8(<だから小説書けって)
2020.3.20追記
カスタム投稿タイプのコメント欄(かつてあれほど苦しんで結局諦めたのに!)が存外さっくり片付いたので喜んでいると、例としてつけた「天キャベ」のコメント欄が何故か2つになっていました。
やや、これはナニゴト!?ともういっぺんテンプレートを開いててみると、テーマデフォルトの投稿用テンプレートから「天キャベ」用にコピーしたテンプレート…フッター直上と思しき箇所には以下のようなくだりがありました。
// If comments are open or we have at least one comment,
load up the comment template.
(訳)もしコメントが開いていた場合、もしくはすくなくとも1つのコメントがある場合、コメントテンプレートをロードします。
上記はコメント行9でして、その下に
if ( comments_open() || get_comments_number() ) : comments_template();
という、確かにコメント欄をひらくための命令が入っていたのでした。
要するにテーマデフォルトのテンプレートには最初からコメント欄が装備されていたのに気づかず、柳は別にコメント欄をつける命令を書き込んでいたという次第なのですね。ダブるわけです。どんだけド素人柳がphp読み込めてないかが如実におわかりいただけるかと…(笑)つくづく、直感だけでやってます。はい。
- カスタム投稿タイプにするとパンくずを叩いたときにインデックスに戻れることは判っていたので、是非ともそうしたく…
- 投稿タイプを自在に切り替えられる「Post Type Switcher」を導入したりなんだりと大騒動したあげく、ココに引っかかって諦め、元に戻しました。何やってるんでしょうね…
- 実はいまだに柳はfunctions.phpを触るのに抵抗があります。サイト真っ白になったらどうしよう…という恐怖からまだまだ脱却できない…
- この後、CPT UIのカスタマイズ画面である【投稿タイプの追加と編集】には【カスタム「サポート」】という項目があって、そこに必要なスラッグ(この場合”comments” )を入力すればよかったという事が判明。『カスタム「サポート」のスラッグとして登録したい値があればそれを入力。複数指定する場合はコンマ区切り』と丁寧な註釈がついていました。…ずばり読み飛ばしてました(笑)わざわざfunctions.phpなんぞ開かなくてもよかったのですね。でもまあ、ひとつかしこくなったということで。2020/3/20追記
- 実はこれが余計な操作だったということが後刻判明いたしました。詳細は【追記2020/3/20】を
- モバイルで寝言のページを開いたときに、トップの画像がダブって見えるという現象。もともと日付表示を無理矢理突っ込んでいたところへ、アイキャッチの設定が関与した為と思われます。まあ、前から少々違和感もあったので、えいやっと改造に踏み切りました。ちょっと見栄えも変わったのですが…お気づきの方はおられますか?
- ド素人・柳ごときのカスタマイズの基本は、コピー&改造。テーマディレクトリには名前のバリエーションばかり多くて不要なファイルが山を為しておりましたとさ。
- 簡単に言いますが、今まで本稿にあてていたタグの整理(タクソノミーとやらとの関連)という大きな山が控えているのです…
- コメント欄の話をしているときにややこしい限りですが…要は、この記述はこれを出力するためのものですよ、という注意書きです。文頭の//はそれを宣言するための記号ですね。htmlでも似たような約束はあったと記憶しています。
コメント