• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPファイルをincludeしてHTML表示する)

PHPファイルをincludeしてHTML表示する方法

このQ&Aのポイント
  • PHPファイルをincludeする方法を使ってHTMLファイルで表示することができます。具体的には.htaccessに「AddType application/x-httpd-php .html」と記述し、表示したいHTML部分に「include(dirname(__FILE__).'/index.php');」と記述します。
  • この方法を使用することで、HTMLサイトの一部のコンテンツをWordPressで更新できるようにすることができます。ただし、初心者の場合は正しく記述する必要がありますので、注意が必要です。
  • 参考にした情報ソースは、http://www.yusk.org/memo/php-memo/php_include_001.html です。

質問者が選んだベストアンサー

  • ベストアンサー
  • yusukexyz
  • ベストアンサー率100% (1/1)
回答No.2

ご参考になられた情報ソース元を書いた者です。当質問を偶然見つけたもので、ご回答に参加させていただきますm(_ _)m 1minnさんがご回答している通り、html内でphpを「認識させる」ので、phpを使用する箇所は<?php ○○○ ?>で括る必要があります。 参考にされた記事では、あくまでこの部分が記事の途中経過の説明にすぎないため、括って書いてないです。 > とりあえずはblog.htmlなページのコンテンツ表示領域にWordPressで作ったindex.phpが表示 ちなみにWordPressではindex.php、header.php、footer.phpなどのファイル群でテーマが構成されております。もちろんWordPress自体を動かすプログラムも含め、独自に定義されたファイルや記述ルールがあるため、単純にWordPress用のファイルを別箇所のスタティックなhtmlにそのままincludeしても構文エラーが出ると思います。 また、blog.htmlがどのディレクトリにあるのか解りませんが、 <?php include(dirname(__FILE__).'/index.php'); ?> の記述だと、ルートディレクトリのindex.phpを読み込むようになっていますが、WordPressの場合のTOPページはテーマフォルダ内のindex.phpになるのでパスの記述にも注意が必要かと思われます。 なのでどうしてもWordPress内のindex.phpを読み込みたい場合には、「blogページ」用のテンプレートをindex.phpを読み込むように作成し、WordPress内のページ機能でblogというページを作ってそのテンプレートを適用させるか、無理矢理別のhtmlから読み込ませて表示するにはiframeもしくはサーバが返したソースを読み込むJavascriptでのincludeの手段になると思います。 根本的な解決になってないかもしれません。。。すいません。

toonie
質問者

補足

ブログ作成者様自らの回答ありがとうございます。返信に本当に時間がかかって申し訳ありませんでした。いただいた回答を参考に、知り合いのプログラマーさんの力を借りて、あーでもないこーでもないと試行錯誤しておりました。 さて、現状を報告させていただくと、/wp/index.php内にて、wp-blog-header.phpという部品が、wordpressで編集したブログを既存のHTML画面に埋め込ませることに成功しました。以下の各ファイルのコードです。 ーーー/wp/index.phpコードーーー <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING); define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('./wp-blog-header.php'); ?> ーーーwp-blog-header.phpコードーーー <?php /** * Loads the WordPress environment and template. * * @package WordPress */ if ( !isset($wp_did_header) ) { $wp_did_header = true; require_once( dirname(__FILE__) . '/wp-load.php' ); wp(); require_once( ABSPATH . WPINC . '/template-loader.php' ); } ?> ーーー/wp/index.htmlコードーーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>タイトル</title> <META NAME="description" CONTENT="省略"> <META NAME="keywords" CONTENT="省略"> <META http-equiv="Content-Script-Type" content="text/javascript"> <META http-equiv="Content-Style-Type" content="text/css"> <META name="robots" content="all"> <link rel="shortcut icon" href="/images/favicon.ico"/> <link rel="icon" href="/images/favicon.ico"/> <link href="/css/main.css" rel="stylesheet" type="text/css"> <link href="/css/other.css" rel="stylesheet" type="text/css"> <script language="JavaScript" type="text/JavaScript"></script> <style type="text/css"> </style> </head> <body> <div id="header"> ~省略~ </div> <div id="contens"> <div id="leftmenu"> ~省略~ </div> <div id="rightmenu"> <p class="standard-title"><img src="/images/yajirusi-big.gif">ブログタイトル</p> <div class="blog"><?php require_once(dirname(__FILE__).'/index.php'); ?></div> </div> </div> ~省略~ </div> <div id="footer"> ~省略~ </div> </body> </html> ーーーーーーーーーーーーーーー これからWordPress内でCSSでレイアウト調整をすることになりますが、ひとまずこの質問内容は完了したと言えるかもしれません。本当にありがとうございます。 ひとつだけ解決できていない問題があるのですが、実は私が作ったhtmlファイル(/wp/index.html)はShift-JISで、 WordPressが吐き出してるブログ(/wp/index.php)はUTF-8で文字コードが違うので、ブログ部分のみ文字化けが起こります。それで上記のように/wp/index.htmlの<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">と変更したのですが、「テキストコーディングエラー」とポップアップが起こりました。「設定したテキストエンコーディングで保存済みですが、テキスト中のcharset設定と一致していないので、ブラウザ等で表示すると文字化けする可能性があります」とのことです。結果、ブログ部分がちゃんと表示され、HTMLで作成した部分は文字化けするようになりました。これはPHPの問題ではないかもしれませんが、原因がどうにも分かりません。もしかしたら初歩的な質問をしているかもしれませんが、よければ教えていただけないでしょうか。

その他の回答 (2)

回答No.3

(1).htaccessに「AddType application/x-httpd-php .html」に関して これは、*.htmlをphpとして扱うと言うことです。 レンタルサーバーによってはこれを許可していないところもあります。 (私が使用しているさくらインターネットでは許可していません) このあたりの確認はどうでしょうか?

toonie
質問者

お礼

返信は大変遅くなり申し訳ありませんでした。いただいた回答を参考に、あーでもないこーでもないと試行錯誤しておりました。私が使用しているサーバーはロリポップです。調べたところによると、ロリポップの場合、「AddType application/x-httpd-php .html」でなく、 「AddHandler php5.2-script .html」と記載するようです。知り合いのプログラマーさんが教えてくれました。 ありがとうございます。

  • 1minn
  • ベストアンサー率57% (52/90)
回答No.1

wordpressは使った事はないのですが・・・ とりあえず上記のソースはHTMLですよね? なので include(dirname(__FILE__).'/index.php');(←ここにブログを表示させたい) って書いてもただそのまま表示されるだけですよね?だってHTMLだから。 HTMLをPHPとしても認識させるってのが(1)になるので 単純にPHPが動いてる環境であれば、 <p class="standard"> <?php include(dirname(__FILE__).'/index.php'); ?> </p> って感じで動きませんか?

toonie
質問者

補足

返信に本当に時間がかかって申し訳ありませんでした。いただいた回答を参考に、知り合いのプログラマーさんの力を借りて、あーでもないこーでもないと試行錯誤しておりました。 さて、現状を報告させていただくと、/wp/index.php内にて、wp-blog-header.phpという部品が、wordpressで編集したブログを既存のHTML画面に埋め込ませることに成功しました。以下の各ファイルのコードです。 ーーー/wp/index.phpコードーーー <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING); define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('./wp-blog-header.php'); ?> ーーーwp-blog-header.phpコードーーー <?php /** * Loads the WordPress environment and template. * * @package WordPress */ if ( !isset($wp_did_header) ) { $wp_did_header = true; require_once( dirname(__FILE__) . '/wp-load.php' ); wp(); require_once( ABSPATH . WPINC . '/template-loader.php' ); } ?> ーーー/wp/index.htmlコードーーー <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja-JP"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>タイトル</title> <META NAME="description" CONTENT="省略"> <META NAME="keywords" CONTENT="省略"> <META http-equiv="Content-Script-Type" content="text/javascript"> <META http-equiv="Content-Style-Type" content="text/css"> <META name="robots" content="all"> <link rel="shortcut icon" href="/images/favicon.ico"/> <link rel="icon" href="/images/favicon.ico"/> <link href="/css/main.css" rel="stylesheet" type="text/css"> <link href="/css/other.css" rel="stylesheet" type="text/css"> <script language="JavaScript" type="text/JavaScript"></script> <style type="text/css"> </style> </head> <body> <div id="header"> ~省略~ </div> <div id="contens"> <div id="leftmenu"> ~省略~ </div> <div id="rightmenu"> <p class="standard-title"><img src="/images/yajirusi-big.gif">ブログタイトル</p> <div class="blog"><?php require_once(dirname(__FILE__).'/index.php'); ?></div> </div> </div> ~省略~ </div> <div id="footer"> ~省略~ </div> </body> </html> ーーーーーーーーーーーーーーー これからWordPress内でCSSでレイアウト調整をすることになりますが、ひとまずこの質問内容は完了したと言えるかもしれません。本当にありがとうございます。 ひとつだけ解決できていない問題があるのですが、実は私が作ったhtmlファイル(/wp/index.html)はShift-JISで、 WordPressが吐き出してるブログ(/wp/index.php)はUTF-8で文字コードが違うので、ブログ部分のみ文字化けが起こります。それで上記のように/wp/index.htmlの<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">と変更したのですが、「テキストコーディングエラー」とポップアップが起こりました。「設定したテキストエンコーディングで保存済みですが、テキスト中のcharset設定と一致していないので、ブラウザ等で表示すると文字化けする可能性があります」とのことです。結果、ブログ部分がちゃんと表示され、HTMLで作成した部分は文字化けするようになりました。これはPHPの問題ではないかもしれませんが、原因がどうにも分かりません。もしかしたら初歩的な質問をしているかもしれませんが、よければ教えていただけないでしょうか。

関連するQ&A