owned mediaウェブ制作に役立つコンテンツを発信中!

WordPress外のファイルでWordPressの関数やショートコードを使えるようにする

最終更新日: Update!!
今回はあまり登場するケースは少ないかもしれませんが、WordPressのシステムではないウェブページなどで、投稿のループを表示させたりといったWordPressの機能を使いたい場合に行う方法です。関数やショートコードをWordPress外のファイルに記述できるようにすることでこれらの実現が可能になります。    
WordPressのコアファイルを読み込む
そのために必要な要件として、WordPress外であってもWordPressのコアファイル群をロードしておく必要があります。WordPressの独自関数はこれらのコアファイル内に定義されているので、コアファイルを読み込まない限りは使用できません。ちなみにWordPressのコアファイル群は次のような流れて読み込まれていきます。 /wordpress/index.php (インデックスファイルの読み込み) /wordpress/wp-blog-header.php (wp-blog-header.phpの読み込み) /wordpress/wp-load.php (wp-load.phpの読み込み ※WordPressの各種機能に関するファイル) /wordpress/template-loader.php (template-loader.phpの読み込み ※WordPressのテンプレート読み込みに関するファイル) その他いろんなWordPressコアファイルの読み込み   なので、WordPressの関数などを使いたいファイルに以下のコードを記述しておきます。
<?php require_once ('./wp-blog-header.php'); ?>
  注意すべき点としては、記述するファイルからみてwp-blog-header.phpファイルまでのパスを相対パスで記述する必要があります。なので実際は下記のような形になるかと思います。(環境によって適宜変える必要があります)
<?php require_once ('./WordPressフォルダ名/wp-blog-header.php'); ?>
  こうすることで通常のWordPressと同じ流れでコアファイルが読み込まれていき、WordPressの各種機能が使えるようになります。もちろん、プラグインなどの機能も使えるようになりますが、その場合には下記のように「wp_head()」や「wp_footer()」も忘れずに追記しておきましょう。
// 一部抜粋
.....
  <?php wp_head(); ?>
</head>
.....
  <?php wp_footer(); ?>
</body>
   
静的ページで404エラーが発生する場合の対応
上記コードを追記することで、WordPressの関数やショートコードは使えるようになりますが、アプリケーションの中を通すため、WordPress側にページとして投稿が存在しないことになり、サーバーからは404エラーが返されることがあります。その場合には、以下のように、「wp-load.php」のファイルを読み込むようにすることで対応できます。これは「template-loader.php」を読み込むことでエラーが発生するためです。
<?php require_once ('./WordPressフォルダ名/wp-load.php'); ?>
   
  追加ページなどでWordPressを導入するまでもない、メンテナンスしやすいようにしておきたいといった場合などに使えるのではないでしょうか。コード1つでWordPressの機能が使えるようになるのは便利ですね。
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram