自作トップページのindex.phpに新着5件表示
-
制作したホームページの他にblogというフォルダを作りそのフォルダにワードプレスをインストールしました。
可能であればトップページ(index.php)にワードプレスの更新情報を表示したいとおもっております。
この場合はどのようにしたら表示されるものなのでしょうか?
宜しくお願いいたします。
-
読み込んだ後の部分と言うのは、具体的にどこを指すのでしょうか?ご返答ありがとうございます。お手数おかけして申し訳ございません。
phpを作成してからトップページ(EUC)のindex.phpに読み込ませるように
requireを仕様しました。元のトップページの中央部分に読み込ませたのですが、その後ろの既存テキストが文字化けしてしまっています。
<?php require('wp-load.php'); mb_http_output("EUC-JP"); ob_start("mb_output_handler"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>○×ウェブサイト</title> </head> <body> <h1>○×ウェブサイト</h1> <p>ここは○×のウェブサイトです。</p> <h2>最新エントリー</h2> <ul> <?php $posts = get_posts("numberposts=5&category=&orderby=post_date&offset=0"); foreach ($posts as $post): setup_postdata($post); ?> <li><?php the_time('Y.m.d') ?> <a href="<?php the_permalink() ?>"><?php the_title() ?></a></li> <?php endforeach; ?> </ul> </body> </html>phpファイルも一度エディタ(terapad)でEUC-JPで保存したもの試してみました。
<?php require('wp-load.php'); mb_http_output("EUC-JP"); ob_start("mb_output_handler"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <title>○×ウェブサイト</title> </head> <body> <h1>○×ウェブサイト</h1> <p>ここは○×のウェブサイトです。</p> <h2>最新エントリー</h2> <ul> <?php $posts = get_posts("numberposts=5&category=&orderby=post_date&offset=0"); foreach ($posts as $post): setup_postdata($post); ?> <li><?php the_time('Y.m.d') ?> <a href="<?php the_permalink() ?>"><?php the_title() ?></a></li> <?php endforeach; ?> </ul> </body> </html>うーん。すでに WordPress ではなくて、PHPの話題になってきているのですが…
ob_start()した後は、ob_end_flush()などで明示的に出力用バッファをフラッシュしない場合は、すべての処理が終わるまで出力用バッファを溜め込み、すべての処理が終了した後で、出力用バッファを指定されたコールバック関数で処理した後で出力されます。
ob_start()の動作原理を良く理解しないまま、使用するのは危険ですので、これは使わないで、mb_convert_encoding()関数を通して、UTF-8→EUC-JP に変換してから出力することをお勧めします。具体的には以下のファイルを作成してEUC-JPで保存してください。
# このコードは検証していません。<?php require('wp-load.php'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <title>○×ウェブサイト</title> </head> <body> <h1>○×ウェブサイト</h1> <p>ここは○×のウェブサイトです。</p> <h2>最新エントリー</h2> <ul> <?php $posts = get_posts("numberposts=5&category=&orderby=post_date&offset=0"); foreach ($posts as $post): setup_postdata($post); ?> <li><?php the_time('Y.m.d') ?> <a href="<?php the_permalink() ?>"><?php echo mb_convert_encoding(get_the_title($post->ID), 'EUC-JP', 'UTF-8'); ?></a></li> <?php endforeach; ?> </ul> </body> </html>肝は
<?php the_title() ?>でタイトルを書き出していた所を<?php echo mb_convert_encoding(get_the_title($post->ID), 'EUC-JP', 'UTF-8'); ?>と書き換えた点です。
mb_convert_encoding()関数を使って、UTF-8で出力されるWordPressのテンプレートタグの文字コードをEUC-JPに変換後、出力します。
他にも、WordPressのテンプレートタグを使用したいのであれば、このように逐次mb_convert_encoding()関数でEUC-JPに変換して出力するようにすればおっけです。>>wokamoto様
EUC-JPに変換して出力するようにすればおっけです。windows用php統合開発環境(IDE)のエディタ(フリーで落ちていたもの)で保存したらできました!!
心の底からありがとうございました。解決したようで良かったです。
問題が解決したのであれば、このトピックを解決済みにしてください。
トピック「自作トップページのindex.phpに新着5件表示」には新たに返信することはできません。