【WordPress】システム外でWordPressの機能を使う方法
WordPressはカスタマイズ性がよく、便利なプラグインもワンボタンで導入できるのでとても便利なブログシステムです。
しかしブログシステム故に(一つの型として動くので)「単発でこういうことをしたい!」と思ったときは少々不便に感じる時があります。
例えば、
- このページは他のページと異なるデザインにしたい
- サブトップページを作成し、そこに指定したカテゴリに属する記事だけを表示させたい
などなど・・・
こういう場合、どう対処したら良いのでしょうか?
新規ファイルを作成する
WordPressのテーマファイルを力押しでゴリゴリ条件分岐させれば、ほぼしたいことはできます。
しかしそれではメンテナンス性に欠けますし、無駄なリスクも増加します。
こういう場合は発想を転換して、WordPressとは別個のファイルを作成し、そこにコンテンツを作りましょう。
WordPressの機能を使えるようにする
WordPressとは別のファイルを作成すれば、WordPressとは別の枠組みなので、思いのままにファイルをいじれます。
しかしそのファイルもWordPressで作成したサイトの一部なので、そこにWordPressで使用しているヘッダー・サイドバー・フッターを引っ張ってきたり、WordPressのテンプレートタグを使いたくなります、確実に。
そういう場合は、「wp-blog-header.php」をインクルードしてあげればハッピーになれます。
「wp-blog-header.php」をインクルードする
方法はいたって簡単で、新しく作成したファイルの一番上に、WordPressの「wp-blog-header.php」を読み込むだけです。
これだけでWordPressとは別のファイルにも関わらず、WordPressのテンプレートタグなどの機能が使えるようになります。
1 2 3 4 | <?php //wp-blog-header.phpを読み込む(WordPress外でもWordPress独自の関数を使えるようにする) require ( './wp-blog-header.php' ); ?> |
【ポイント】
「wp-blog-header.php」をインクルードする場合、ドキュメント宣言より前に読み込む必要があります。
なお、「./wp-blog-header.php」というパスは、WordPressのルートディレクトリにファイルを設置する場合です。
「test」というフォルダ(ディレクトリ)をWordPressのルートディレクトリに作成し、そのフォルダにファイルを設置した場合は、パスは「../wp-blog-header.php」になります。
サンプル
サンプルとして、WordPress外のファイルに、新着記事を表示させるソースを掲載します(ヘッダー、サイドバー、フッターも読み込みます)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | //WordPress外でもWordPress独自の関数を使えるようにする <?php require ( './wp-blog-header.php' ); ?> //ヘッダーの読み込み <?php get_header(); ?> <?php if (have_posts()) : //繰り返し処理開始 while (have_posts()) : the_post(); ?> <article id= "post-<?php the_ID(); ?>" > //記事タイトル <h2><?php echo get_the_title(); ?></h2> //投稿時間 <div class = "date" ><?php echo get_the_date(); ?></div> //記事内容 <div class = "post" ><?php the_content(); ?></div> </article> <?php //繰り返し処理終了 endwhile ; //ここから記事が見つからなかった場合の処理 else : ?> <h2>記事はありません</a></h2> <p>お探しの記事は見つかりませんでした。</p> <?php endif ; ?> //ページャー <?php if ( $wp_query -> max_num_pages > 1 ) : ?> <div class = "navigation" > <div class = "alignleft" ><?php next_posts_link( '« 前のページへ' ); ?></div> <div class = "alignright" ><?php previous_posts_link( '次のページへ »' ); ?></div> </div> <?php endif ;?> //サイドバーの読み込み <?php get_sidebar(); ?> //フッターの読み込み <?php get_footer(); ?> |
見やすいように不要なタグを削除し、コメントを直書きしましたが、一応これを元にいろいろとカスタマイズできると思います。
あわせて読んでほしい!
コメント
まだコメントはありません。