• 解決済 sakurai07

    (@sakurai07)


    制作したホームページの他にblogというフォルダを作りそのフォルダにワードプレスをインストールしました。

    可能であればトップページ(index.php)にワードプレスの更新情報を表示したいとおもっております。

    この場合はどのようにしたら表示されるものなのでしょうか?

    宜しくお願いいたします。

4件の返信を表示中 - 16 - 19件目 (全19件中)
  • トピック投稿者 sakurai07

    (@sakurai07)

    読み込んだ後の部分と言うのは、具体的にどこを指すのでしょうか?

    ご返答ありがとうございます。お手数おかけして申し訳ございません。

    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に変換して出力するようにすればおっけです。

    トピック投稿者 sakurai07

    (@sakurai07)

    >>wokamoto様
    EUC-JPに変換して出力するようにすればおっけです。

    windows用php統合開発環境(IDE)のエディタ(フリーで落ちていたもの)で保存したらできました!!
    心の底からありがとうございました。

    解決したようで良かったです。
    問題が解決したのであれば、このトピックを解決済みにしてください。

4件の返信を表示中 - 16 - 19件目 (全19件中)

トピック「自作トップページのindex.phpに新着5件表示」には新たに返信することはできません。