この実装、面倒なら代行します
固定ページは標準で階層構造になっていますが、投稿(post)は階層構造になっていません。
投稿にはカテゴリがあって、その下の投稿記事はすべてフラットになるのが標準です。
でも、親投稿と子投稿のテンプレートを変えたい、という場合があります。
親投稿は親投稿でしっかり記事として執筆しつつ、その文中に、複数ある子投稿のサマリーを表示しておいて、詳細は子投稿で読ませたい、という時などです。
親子のリンク生成などをWordPressの関数で自動でできるなど、いろいろと運用の手間が省けるので、親子の関係はぜひ作っておきたいところですね。
そこで今回は、投稿(post)を親子階層構造にする方法のご案内。
テーマの functions.php に以下のように記述します。
add_action('registered_post_type', 'kaiza_posts_hierarchical', 10, 2); function kaiza_posts_hierarchical($post_type, $pto){ global $wp_post_types; if ($post_type != 'post') return; $wp_post_types['post']->hierarchical = 1; add_post_type_support('post', 'page-attributes'); }
これで、管理画面の投稿作成画面で「投稿の属性」が現れ、そこで親投稿を選択することができるようになり、WordPressの関数で親投稿、子投稿を探すこともできるようになります。
ところが・・・。
実は、これだけでは、親子の論理的な関係は作れても、URLの構造は変わらないのです。
親子なのだから下のようになっていてほしいですよね。
親投稿:https://domain.com/category/parent-slug/
子投稿:https://domain.com/category/parent-slug/child-slug/
でも実際はこうなります。
親投稿:https://domain.com/category/parent-slug/
子投稿:https://domain.com/category/child-slug/
そんな中途半端な・・・。階層って、そういうことじゃないよね・・・。
ということで、これをどうにか解決したい。
続く。
投稿(post)を階層構造にしてもURLは階層構造にならない!を解決する( parent-slug/child-slug にする)
現在あなたが利用されているWordPressテーマを活かしたまま、このページの事例を解決できるWordPressテーマを、子テーマとして購入できます。
この子テーマを有効化するだけで、現在お使いのデザインテーマにこの事例解決の機能が自動付与されます。
デザインが入っていないため、一般より格段に低い価格(事例の難易度により200円~1.3万円)です。
※ テーマは買い切りです
※ 自由に改変してお使いいただいて構いません
※ すでに子テーマでサイト運用されている方は、当該子テーマをマージしてください
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。