WordPressの事(2)
WordPressで、トップページに固定の”ページ”と投稿を混在させたい。
基本、WordPressはトップページに”ページ”か”ポスト”かのどちらかしかを表示しないようで、そういったテーマしか見あたらない。
トップページで表組みやページとWhat's Newのようなポスト系の情報を混在させたいニーズはあると思うのだけれど・・・。
で、ここを参考に、まずポストを表示するindex.phpをコピーしてhome.phpを作成して、
<?php get_header(); ?> <div id="posts_contain"> <!-- posts --> <div id="posts_contain">
を
<?php get_header(); ?> <div class="post-2 page hentry category-1" id="post-2"> // ここはポスト部分のソースを見てまねた。 <div class="post_header"> <div class="post_header_left"> <h2> 固定の紹介文を表示 </h2> </div> </div> <div class="post_content"> <p> <?php $page_id = 2; <- 表示したいページのpage_idを指定 $mes = get_page($page_id); <- 対象のページを取得して echo $mes->post_content; <- 表示する ?> </p> </div> </div> <!-- posts --> <div id="posts_contain">
に変更。これで固定のpage_id=2を先頭に表示できた。
get_page()を調べてゆくと、ここに色々な関数やタグの情報があり、ページのリストの取得とかも。
そこを参考に、ページのリストと、投稿のリストをテーブル表示してみた。
<?php get_header(); ?> <div class="post-2 page hentry category-1" id="post-2"> <div class="post_header"> <div class="post_header_left"> <h2> 固定の紹介文を表示 </h2> </div> </div> <div class="post_content"> <p> <?php $page_id = 2; $mes = get_page($page_id); echo $mes->post_content; ?> </p> </div> </div> =============================================================== <table> <tr> <td>page</td> <td>post</td> </tr> <tr> <td> <div class="widget widget_recent_entries"> <- 下のポストで生成されるタグをまねた <h2 class="widgettitle">ページ一覧</h2> <?php wp_page_menu(); ?> <- ページの一覧だけ(タイトルとかは無い) </div> </td> <td> <?php $widget = WP_Widget_Recent_Posts; $instance = ''; $args = 'befor_title=<h2>'; the_widget($widget, $instance, $args); ?> <- サードバーで使うウィジェットを呼び出す。 </td> </tr> <tr><td> </td> <td> </td> </tr> </table> ===============================================================