home.php使ってのトップッページに新着ニュース5件を表示したい

Simplicityの特徴 › フォーラム › テーマファイルのカスタマイズに関する質問など › home.php使ってのトップッページに新着ニュース5件を表示したい

5件の返信スレッドを表示中
  • 投稿者
    投稿
    • #52619
      kamiy
      ゲスト

      標題の質問をさせていただければと。
      トップページをhome.phpにし、その中にブログ記事のカテゴリー「新着情報」で設定した記事を5本表示させたいと思います。デフォルトのウィジェットで設定されているものはサムネイルが不要だったりと意図するものと異なるため使いません。
      コード的にはワードプレスでもよく使用される下記コード(カテゴリ5の新着情報記事を5件抽出)を使おうとしたのですが、他のテーマで何ら問題なく使えるのが、非常に苦戦しています。

       <h2 class="whatsnew">新着情報</h2>
           <ul class="news">
            <?php
             $lastposts = get_posts('numberposts=5&category=5');
             foreach($lastposts as $post) : setup_postdata($post);
             ?>
            <li><span><?php the_time('Y.m.d') ?></span><a>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a></li>
            <?php endforeach; ?>
          </ul>

      試した方法は下記、いずれのファイルも子テーマフォルダに入れてですが、いずれも全く表示されませんでした。
      1.home.php内に記述
      2.header.php 〃
      3.list.php 〃
      そこで、home.phpを使うのはあきらめ、page.phpに記述してトップ以外のページで正常に表示されたのを確認し、page-top.phpを作成してこれを表示設定でトップにしその中に記述したところ、新着情報自体は正常に表示されたのですが、<?php the_content(); //本文の呼び出し?>のトップページの投稿記事が反映されず全然違うブログ記事が反映されてしまいました。
      これでお手あげになってしまったのですが、知識不足のため基本的なところでひっかかっている気もします。どなたかご教示いただければ大変助かります。
      トップページ内(できればhome.php)に新着情報5件を「年月日ータイトル(リンク)」で表示する目的を達せれば別のコードでもOKですし、サイドバーでの表示でもいいかなと考えております。

    • #52624
      アバター画像わいひら
      キーマスター

      コードは所々おかしいところがありますし、必要なURL情報も欠けています。
      僕の環境では、home.phpに以下のように修正して記入したら、ちゃんと反映されました。
      以下home.phpに書いた全コード

      <?php //トップページ用 ?>
      <?php get_header(); ?>
       <h2 class="whatsnew">新着情報</h2>
       <ul class="news">
        <?php
         $lastposts = get_posts('numberposts=5&category=5');
         foreach($lastposts as $post) : setup_postdata($post);
         ?>
        <li><span><?php the_time('Y.m.d') ?></span><a id="post-<?php the_ID(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
        <?php endforeach; ?>
      </ul>
      <?php get_template_part('list') ?>
      
      <?php get_footer(); ?>


      今後、スタイルシートで表示を整える必要はあるかもしれませんが、動作処理部分はこれで良いかと思います。

    • #52696
      kamiy
      ゲスト

      わいひらさん
      正しいコードとご教示、誠にありがとうございます。URLはこちらです。
      http://hakataeikaiwa.com/

      表示設定で最新の投稿にチェックを入れるとご教示の通り正常に表示されるのですが、
      固定ページにチェックを入れるとやはり前投稿と同じような現象となりうまく行きません。
      デフォルトのテストサイト(同じくsimplicity-2の子テーマ)でやっても全く同じ結果となりました。
      やはり残念ながら私ではこれ以上、すすめることができなさそうです。

      他のQ&AでプラグインのWhat’s New Generatorがおすすめされていたのを拝見し導入したところ、
      とりあえず目的は達成され現在表示の通りです。
      ・・が、イマイチ原因不明であったので、とりあえずご報告させていただきます。

    • #52703
      アバター画像わいひら
      キーマスター

      固定ページにチェックを入れるとやはり前投稿と同じような現象となりうまく行きません。

      冒頭の書き込みに上記のように使用することが書いてなくないですか?
      確かに、「何でpage.phpに記述するのかな?」とは思いましたが。
      固定ページをトップにするのであれば、当然home.phpでは対処できないかと思います。

      ただ、とりあえずプラグインで対処できたのであれば、そちらの方が良いかと思います。
      PHP編集に慣れていない場合は、なるべくテンプレートには変更を加えない方が後々楽だと思います。PHP編集に慣れている場合であったとしても、手軽にできる方が個人的にはベストだと思います。

    • #52739
      kamiy
      ゲスト

       わいひらさん

      >冒頭の書き込みに上記のように使用することが書いてなくないですか?
      →はい、そうです。
      そもそも某固定ページをトップにしたいため、表示設定>フロントページの表示にチェックを入れ某固定ページを割り当て、その某固定ページのテンプレートを「デフォルト」に設定したのですが(今、その設定状態)、デフォルトとは自動的にhome.phpになるものと思っていました。
      しかしhome.phpに記述しても(今、記述している状態です)最新情報が表示されないので、固定ページをコピーしpage-top.phpと名付けて割り当てたところ(現在、破棄しています)、最新ニュースは表示されたものの以下がその某固定ページの投稿と違う内容が表示されてしまったということでございます。

      home.phpはそもそもブログ投稿記事一覧が反映されるのでしょうか?
      フロントページの表示で最新の投稿にチェックを入れると新着情報の記述が反映されるということは、フロントページがhome.phpとなり、そういうことなのかなと。
      ちなみにこのsimplicityのサイトではどのように設定されているのでしょうか。固定ページっぽいような感を受けるのですが。。
      基本的なことで申訳ありませんが、現状、トップページにはpage.phpが反映されているのかな、と解釈しているのですが、その認識で正しいのでしょうか。

      とりあえずプラグイン設定して2日経ちましたが全く問題ない状態なのでこれを継続しつつも、時間があれば再度トライしたいなと考えております。
      (サイト自体はsimpilicity2の高機能を享受でき、感謝感謝です!)

    • #52745
      アバター画像わいひら
      キーマスター

      フロントページとホームページの違いは、以下などを読むとわかるかと思います。
      is_home()とis_front_page()の違いって何? ? 100arttoe
      is_home()とis_front_page()の条件分岐タグの違い[WordPress]
      上記は、関数の説明ですが、テンプレートの動作にも関わってきます。
      is_home()関数が有効なところでhome.phpが適用されます。
      これは、Simplicityの動作というよりは、Wordpressデフォルトの動作になります。
      ただここは、僕もたまに忘れて確認したりするほど、ちょっとややこしいところです;
      こういった、ややこしいことを考えずに済むので、最初にプラグインを使用するのは理にかなっていると僕も思います。

      基本的なことで申訳ありませんが、現状、トップページにはpage.phpが反映されているのかな、と解釈しているのですが、その認識で正しいのでしょうか。

      それで正しいと思います。関数で言えば、is_front_pageとis_page(page.php)とかが反映されている状態です。

5件の返信スレッドを表示中
  • フォーラム「テーマファイルのカスタマイズに関する質問など」には新規投稿および返信を追加できません。
スポンサーリンク
アドセンス(大)
アドセンス(大)