質問: ### 前提・実現したいこと いろんなお店を登録して登録している店を検索してもらうサイトを作成しています。 固定ページの1つの記事ごとにお店の詳細ページを作成して、 カスタム投稿にお店のカタログページを作成することにしました。 固定ページ(お店の詳細ページ)にカスタム投稿で作成したカタログページへのリンクを入れたいです。 ページの情報を更新するのはお店側でwordpressが全く分からない方でも更新できるようにしたいので、固定ページ(お店の詳細ページ)の記事にカタログページのIDを直で入れてリンクするという方法は避けたいです。 ※カタログページ作成は1つの店舗ごとに制限はありません。 ※お店ごとにログインユーザを割り当てお店情報もカタログ登録のお店側で更新します。 ### 実装方法について 以上の条件で私の方で考えられる方法は、 固定ページ(お店の詳細ページ)を新規作成したユーザと カタログページへを新規作成したユーザが一致したカタログページを 固定ページ(お店の詳細ページ)にリンクとして自動で 出力される仕組みを作成するのが良いではないかと考えました。 具体的な方法が分かっていないのですが 何か便利なプラグインや参考になりそうなサイトなどありましたら教えてください。 また、別の方法が思いついた方がいらっしゃれば教えて頂けると幸いです。 宜しくお願い致します。
回答: 質問者様の考えられた実装方法でいけると思います。 > > 固定ページ(お店の詳細ページ)を新規作成したユーザと > > カタログページへを新規作成したユーザが一致したカタログページを > > 固定ページ(お店の詳細ページ)にリンクとして自動で > > 出力される仕組みを作成するのが良いではないかと考えました。 > > > functions.phpに以下の様なフィルターフックを実装するイメージです。 ざっとコードを書いてみたので、参考にしてみてください。 ``` function my_function($the_content) { // 固定ページの場合 if( is_page() ) { // 固定ページを作成したユーザを取得 $author_id = get_the_author_meta('ID'); // ユーザが投稿したカスタム投稿をすべて取得 $my_posts = get_posts(array( 'author'=>$author_id, 'post_type'=>'post', 'numberposts'=>-1)); // カスタム投稿へのリンクを固定ページのコンテンツ下に付与 foreach($my_posts as $post) { $link = '' . get_the_title( $post->ID ) . ''; $the_content = $the_content . $link; } } return $the_content; } add_filter('the_content','my_function'); ``` (`'post_type'=>'post'`の`post`はカスタム投稿タイプのスラッグへ変更してください) フィルターフックについての概要は、以下のページを読んでみてください。