固定ページの記事を取得

久しぶりに技術ネタ?です。

Wordpressのトップページにニュースを表示したい」

方法としては、

  1. 固定ページを作ってそこにニュースを書いてもらう。
  2. それをトップページで取得し表示する。


固定ページの取得は以下のようになります。

<?php query_posts('pagename=ページ名'); ?>


記事を表示するには以下のコードになります。

<div id="news">
  <?php query_posts('pagename=news'); ?>
  <div id="news-text"><?php the_post(); ?>
  <?php the_content(); ?>
</div>


しかし、このままでは後ろで投稿一覧を表示する時に
挙動が変になってしまうので最後にリセットをします。

<?php wp_reset_query(); ?>


これで「できたー!」と思ったのですが、
後ろの投稿一覧の「続きを読む」が表示されず、
全文が表示されてしまう現象がおきました。
以下を追加することでなおりました。


wp-includes/post-template.php

    183 function get_the_content($more_link_text = null, $stripteaser = 0) {
    184         global $id, $post, $more, $page, $pages, $multipage, $preview;
    185+         if(is_home()){
    186+             $more = "";
    187+         }

なぜかmoreに1が入ってしまっていたので、
トップページの時だけ無理やり直すことにしました。
(moreが偽の時に「続きを読む」が表示されるみたいです。)


リファレンスを読むようにしないと。


ref:

テンプレートタグ/query posts - WordPress Codex 日本語版
query_postsをリセットする方法 « サウンドエフ – CSSやIEバグフィックス、CMSなどの覚え書き