こんにちは、プラスユニット株式会社制作担当 中の人、『菊地』です。
今回の記事では、WordPressのフォルダ外で関数や投稿記事などを呼び出す方法 と エラー時の対処方法についてまとめてみたいと思います。
構築する構造と最終的なゴール地点について
まずは、基本的なやりかたの説明する前に構築する構造について触れておきたいと思います。
構造について
■トップドメイン(sample-sample-sample.com)
———————–
index.php or index.html(←このファイルに更新情報などを読み込ませたい)
∟wordpress(wordpressが読み込まれているフォルダ)
———————–
つまりは、「Wordpressで制作していないけど、Wordpressの情報が取得したい」そんな矛盾を解決してくれます。
静的HTMLやPHPのページにWordPressのフォルダ外で関数や投稿記事などを呼び出す
基本的な記載方法は実に簡単です。
更新情報を読み込ませたいファイルの一番上に以下を記述するだけです。
<?php require_once( dirname(dirname( __FILE__ )) . '/wordpres/wp-load.php' ); ?>
※ちなみにhtmlに読み込ませる場合、htmlファイルでphpの処理が出来るように対処が必要です。
>>.htaccessを使って、PHPを拡張子.htmlで動かす方法
ソースについて補足
/wordpress/となっている個所は環境によって変更します。
・/wordpres/wp-load.php は相対パスで記述します。
さっそくやってみましょう!
「大成功!!」といきたいところですが・・・・
まさかのエラーが発生!動かないどころか、データベースに接続できていない!!
画面には無常にも、ただ一行
Error establishing a database connection
と表示されており、手掛かりになる情報も表示されておりません。
まずは落ち着いて、エラーを確認します。
エラーの確認方法は、いくつかありますが、ここでは「wp-config.php」を使います。
「wp-config.php」はwordpressをインストールしたフォルダ直下にあるwordpressにおいての最重要ファイルの一つです。
変更次第では、Wordpressが一切表示されなくなってしまいますので、変更の際は必ずバックアップを取るように気を付けてください。
変更する箇所は以下になります。
変更前
define('WP_DEBUG', false);
変更後
define('WP_DEBUG', true);
falseをtrueにすることで、wordpressのエラーなどを表示することが出来ます。
本来正常に動いているファイルも警告などが表示され、レイアウトが崩れることなどがありますので、
エラーを確認後、元に戻すのを忘れないように気を付けてください。
実際のエラー表示画面
どうやらデータベースの接続でエラーが出ているようですね。
しかし、wordpressの設定自体に問題はありません。
ということは、サーバー設定の方に問題があるのかもしれません。
サーバー環境は「CPIのシェアードプラン ACE01」です。
それをもとにリサーチしたところ、この解決方法に辿り着きました。
CPIサーバーでの外部ファイルにWordpress読み込みエラーはコレで解決しました。
原因:MySQLのバージョンを選択出来るようにアップデートした際に出た現象でポート番号の指定が必要に
先程出てきた「wp-config.php」を以下のように変更します。
変更前
/** MySQL のホスト名 */ define('DB_HOST', 'xxxxxxxxxxxx');
変更後
/** MySQL のホスト名 */ define('DB_HOST', 'xxxxxxxxxxxx:MySQLのポート番号');
ポート番号については、CPIサーバーのユーザーページにログインして
お客様情報 > プログラム で使用しているMySQLのポート番号を確認することが出来ます。
これで無事接続出来るようになりました。
あとは記事を表示する関数を記載すれば、大成功です。
是非一度、お試し頂ければと思います。
制作担当 菊地 浩貴