ホームページを作成するときに、同じ情報を使用するのにページが違うという理由で全く同じ情報をいくつものページに書くのはイケてない。
使い回したいパーツであったり、メールアドレスや電話番号などの共通情報は一元管理しておいて、変更があればそこだけ修正すればOKというのが理想的ですよね。
でも残念ながら、WordPressには共通情報を使い回したいというときに、これといって仕組みが用意されていません。
ということで、共通情報を一元管理しておいて、必要に応じて呼び出して使う方法を紹介します。
共通情報を呼び出す仕組み
呼び出す方法は今のところ2種類あって(自分のノウハウとして)、ページをまるごと呼び出す方法とカスタムフィールドの情報を呼び出す方法があります。
ページ呼び出しは、使い回したいパーツをページとして作成しておき、別ページから呼び出して使います。
カスタムフィールド呼び出しは、メールアドレスや電話番号などをカスタムフィールドに保存しておき、別ページから呼び出して使います。
別ページから呼び出すと書きましたが、基本的にどこからでも呼び出すことができます。
ページ呼び出しのやり方
1. 共通情報を一元管理するページを作成する
まず、共通情報をページとして作成します。
作成するページは、postでもpageでもカスタム投稿タイプでもOKです。
このとき、ページに分かりやすいスラッグ名をつけてください。このスラッグは呼び出すときの目印になります。
ページidで呼び出すことも可能ですが、スラッグ名にしておけば、呼び出すときに分かりやすいし、別のサイトでもこの仕組みを利用したいとなったときにページidを調べる必要がありません。
・スラッグ名は、common-infoとする。
2. ページの情報を呼び出す関数を作成する
以下のコードをfunctions.phpに書く。
1 2 3 4 5 6 7 8 | function get_post_content( $page_path, $output=OBJECT, $post_type='page' ) { $get_page_by_path = get_page_by_path( $page_path, $output, $post_type ); if ( $get_page_by_path->post_status == 'publish' ) { return apply_filters( 'the_content', $get_page_by_path->post_content ); } else { return null; } } |
3. ページの情報を呼び出すショートコードを作成する
以下のコードをfunctions.phpに書く。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | add_shortcode('get_post_content', 'sh_get_post_content'); function sh_get_post_content($atts) { extract( shortcode_atts( array( 'page_path' => 'page_path', 'output' => OBJECT, 'post_type' => 'page' ), $atts ) ); return get_post_content($page_path, $output, $post_type); } |
4. 作成した関数とショートコードの使い方
ここからは、ページ呼び出し関数とページ呼び出しショートコードの使い方の説明です。
テーマファイル内での使い方
テーマファイル(php)内で呼び出すには、関数を使用します。
1 | <?php echo get_post_content('common-info', OBJECT, 'page'); ?> |
引き数はget_page_by_pathと同じです。
第2引数:戻り値の種類(OBJECTにしておけば、OK)
第3引数:ポストタイプ(今回は、page)
今回の想定では、固定ページの情報を呼び出すので、第2、第3引き数は省略してもかまいません。
管理画面の編集画面で使用する方法
呼び出したいページの編集画面で以下のショートコードを使用します。
1 | [get_post_content page_path="common-info" output="OBJECT" post_type="page"] |
引き数は、get_post_content関数を呼び出すときと同じです。
こちらも今回の想定においては、第2、第3引き数は省略してもかまいません。
カスタムフィールド情報呼び出しのやり方
共通情報を一元管理するページを作成する