固定ページの記事を取得
久しぶりに技術ネタ?です。
「Wordpressのトップページにニュースを表示したい」
方法としては、
- 固定ページを作ってそこにニュースを書いてもらう。
- それをトップページで取得し表示する。
固定ページの取得は以下のようになります。
<?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などの覚え書き