WordPress で特定のページのコンテンツを読み込む場合に数行のコードで読み込んだりすることがあると思います。フッタのお知らせ部分だけを書き換えられるようにしたりすることとかあると思いますが、大規模なサイトになりますとこの書き換える部分がどんどん増えてコードが煩雑になってきますね。
あまりにも複雑だったので、ポストタイプとポスト ID を入れることで直接記事の内容を取り込めるシンプルな関数作っておきました。大規模な開発や、コードをシンプルにしたい方は是非ご活用ください。
テンプレートに貼り付けるコード
この1行のコードを貼りつければコンテンツを出力することができます。
1 | <?php echo wbsGetPost('page', 120); ?> |
functions.php に関数を貼り付ける
上のコードを使えるようにするために functions.php に関数を貼り付けます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function wbsGetPost($type, $id, $filter = true) { $loops = new wp_query(); if(is_int($id)){ $loops->query("post_type={$type}&p={$id}"); } else { $loops->query("post_type={$type}&name={$id}"); } while($loops->have_posts()): $loops->the_post(); $the_content = get_the_content(); endwhile; if($filter === true) { return apply_filters('the_content', $the_content); } else { return $the_content; } } |
サンプルコード
news というカスタム投稿タイプの特定の記事を出力する例
1 | <?php echo wbsGetPost('news', 120); ?> |
整形されていない元々のデータを取得する例
1 | <?php echo wbsGetPost('page', 120, false); ?> |
コメント