このページの本文へ

フロントエンドエンジニアのblog

有限会社Willさんいん

このページの位置: home カスタム投稿タイプ

タグ: カスタム投稿タイプ

カスタム投稿のパーマリンクからカスタムタクソノミーの子孫タームを削除する

カスタム投稿タイプのパーマリンク設定でカスタムタクソノミーを含めた場合、そのタクソノミータームに親子関係があると、それが階層的に設定されます。

パーマリンク設定
https://www.example.com/custom-post-slug/%custom_taxonomy_slug%/%postname%/
親タームがあるときの URL
https://www.example.com/custom-post-slug/親ターム/子ターム/投稿名/

今回、URL から子孫タームは削除して親タームのみとしたい案件があり、ググってみると、投稿のパーマリンクでカテゴリを含めた場合に子カテゴリを削除する方法はいくつか見つかりましたが、カスタムタクソノミーの例は見つからず、試行錯誤してみました。

“カスタム投稿のパーマリンクからカスタムタクソノミーの子孫タームを削除する” の続きを読む »

公開中のページを公開したまま編集して承認待ちにする

この記事は2016年1月10日に書かれたものです。情報が古い可能性がありますのでご注意ください。

WordPress で承認フローを作成する場合、「Peter’s Collaboration E-mails」と「User Role Editor」の2つのプラグインを組み合わせる方法が、多くのブログ等で紹介されています。その基本は「Peter’s Collaboration E-mails」で承認者を設定して、寄稿者が投稿した際に承認者にメールで通知されるようにし、「User Role Editor」では、寄稿者にファイルのアップロード権限を付けたり、独自のロールを作成したりするというものです。

今回、承認フローが必要な案件があり、上記のプラグインを導入して実装しました。さらに「Peter’s Post Notes」プラグインも導入して承認依頼や差し戻しの際のメールにコメントを追加できるようにしました。

しかし、これだけでは実現できないことがありました。それは、公開中のページを差し替える場合の承認フローです。ページを公開したままの状態で、寄稿者が内容を修正して承認待ちとし、承認者が確認してページを差し替えるという流れが必要ですが、WordPress には差し替え用のページを作る機能はありませんので、公開中のページは修正した流れで即更新することになります。また、そもそも寄稿者は公開中のページを編集することができません。「User Role Editor」で寄稿者に公開中のページを編集する権限を付けることは可能ですが、そうすると、そのまま更新するこも可能になってしまいます。

そこで、「Revisionary」と「WP Post Branches」という2種類のプラグインを試してみました。機能としては「Revisionary」がマッチしていますが、機能が特化している故に様々な問題があり、最終的に「WP Post Branches」を使い、不足する機能を他のプラグインや設定で補うことで、目的のフローを実装することができました。

“公開中のページを公開したまま編集して承認待ちにする” の続きを読む »

検索フォームと検索結果ページを複数設置する

この記事は2015年7月23日に書かれたものです。情報が古い可能性がありますのでご注意ください。

一つの WordPress で構築したサイトの中でブログを運営している場合に、サイト全体を検索対象とするサイト内検索と、ブログ記事のみを検索対象とするブログ内検索の両方を設置したいということがあります。

ブログ内検索に WordPress の検索機能を利用し、サイト内検索は Google カスタム検索を利用するというのも一つの方法ですが、今回、既に WordPress の機能でサイト内検索を設置しているこのサイトに、WordPress の機能でブログ内検索を追加しました。

サイト内検索のフォームは共通のヘッダーに設置されているため、ブログの各ページでは検索フォームが2つ存在することになります。追加するブログ内検索のフォームはサイドバーに設置します。

また、その検索結果のページのデザインはそれぞれ異なるものとし、ブログ内検索の検索結果はブログのデザインの中で表示させます。

“検索フォームと検索結果ページを複数設置する” の続きを読む »

マルチサイトでサイト毎にカスタム投稿タイプを使う

この記事は2015年1月18日に書かれたものです。情報が古い可能性がありますのでご注意ください。

WordPress に様々な投稿タイプを追加することができるカスタム投稿タイプや、カテゴリやタグのような分類を追加することができるカスタム分類。これを管理画面から設定できるプラグインとして、有名なもので Custom Post Type UI や Custom Post Type Generator などがあります。

これまで、Custom Post Type Generator を使っていましたが、先日バージョン 2.3.0 が公開され、これに更新したらカスタム投稿タイプやカスタム分類のラベルが消えて名前(スラッグ)と同じになり、管理画面のメニューからも消え、カスタム分類アーカイブのパーマリンクも変わってしまいました。こういうことがあるから、出来るだけプラグインを使わない方がいいんですね。

これを機に、これまで構築したサイトも含め、カスタム投稿タイプとカスタム分類についてプラグインの使用をやめ、function.php で定義する方法に変更しました。

既に function.php には様々な記述をしているため、管理しやすいように custom-post-type.php というファイルを作ってこれに記述し、function.php に読み込むようにしています。(custom-post-type.php の記述はこの記事の最後に記載)

いくつかのサイトを同じようにしてプラグインから function.php による定義に変更していきましたが、一つだけマルチサイト機能を使って複数のサイトを作り、それぞれに異なるカスタム投稿タイプを設定しているサイトがありました。

“マルチサイトでサイト毎にカスタム投稿タイプを使う” の続きを読む »

カスタム投稿タイプの日付ベースアーカイブとパンくずリスト

この記事は2015年1月6日に書かれたものです。情報が古い可能性がありますのでご注意ください。

WordPress のカスタム投稿タイプをブログのように使う場合、月別アーカイブページを表示させたい場合があります。この時のパンくずリストについて、自分でパンくずリストを実装する場合は何とでもなると思いますが、Breadcrumb NavXT などのプラグインを利用している場合はなかなか思うように表示されません。

例えば、カスタム投稿タイプ “blog” の2015年1月のアーカイブページの URL は、http://example.com/blog/date/2015/01/ となりますが、このページのパンくずリストが本来ならば、

Home > ブログ > 2015年 > 1月

と表示させたくても

Home > 2015 > 1月

のように、カスタム投稿タイプのアーカイブページへのリンクが表示されず、さらに2015年のリンク先が、通常の投稿の年別アーカイブページ http://example.com/2015/ になってしまいます。

これは、そもそもカスタム投稿タイプの日付アーカイブは WordPress に標準装備されていない機能らしく、パンくずリストを自分で実装する必要があるようです。

今回このブログの月別アーカブページのパンくずリストを、Breadcrumb NavXT を使ったまま、テンプレートで書き替えてみました。

“カスタム投稿タイプの日付ベースアーカイブとパンくずリスト” の続きを読む »

page top