先日の記事(2012/01/04)WP3.3-Theme⑥archive.php作成を書いたのですが
タイトルのみ一覧から本文込みに変更したお話。

先日作成した archive.php をそのまま修正してみると表示が崩れてしまったので
改めて作成しなおしました
index.php中身を基本で説明していきますが、不要なタグもあるので下記をコピーしてテキストエディタに貼付け archive.php として保存します

archive.php
<div id="contents"><div class="inner">
<div id="main">
<div class="article">
<div class="articleHeader">
<!-- / .articleHeader END --></div>
<div class="articleBody">
呼び出されたアーカイブ等 記事表示
<!-- / .articleBody END --></div>
<!-- / .article END --></div>
<!-- / #main END --></div>

*1行目 <div id="contents"><div class="inner"> の前に追加
archive.php
<?php get_header(); ?>
<?php get_header(); ?>は、header.php を読み込んでいます

*2行目 <div id="main"> の下に表示させたいアーカイブのタイトル部分を追加
archive.php
<?php if ( have_posts() ) : ?>
<?php if(is_category()): ?>
<h2>『<?php single_cat_title(); ?>』カテゴリーの投稿</h2>
<?php endif; ?>
<?php if(is_tag()): ?>
<h2>『<?php single_cat_title(); ?>』タグの付いた投稿</h2>
<?php endif; ?>
<?php if(is_month()): ?>
<h2><?php echo get_query_var('year'); ?>年<?php echo get_query_var('monthnum'); ?>月の投稿</h2>
<?php endif; ?>
<?php rewind_posts(); ?>

*3行目 <div class="articleHeader"> の上にループ開始タグを追加
archive.php
<?php query_posts($query_string . '&posts_per_page=-1'); ?>
<?php while ( have_posts() ) : the_post(); ?>
通常はアーカイブでも管理画面の記事表示件数と同じ数になってしまいます
「query posts」を利用することで表示件数の変更ができます
最後にリセットタグも付けないといけません
テンプレートタグ/query posts参照

*<div class="articleHeader">~<!-- / .articleHeader END --></div>部分
タイトルとカテゴリやタグ等(カテゴリを記事フッダーに入れている場合はタイトルのみ)
archive.php
<div class="articleHeader">
<h4><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>">	<?php the_title(); ?></a></h4>
<ul>
<li class="time"><?php the_time('Y/m/d') ?></li>
<li class="category"><?php the_category(', ') ?></li>
<li class="tag"><?php the_tags('', ', '); ?></li>
</ul>
<!-- / .articleHeader END --></div>
タイトル見出しのタグは<h4></h4>となっていますがお好みで
日付時刻等好みで表示できます 日付と時刻の書式参照

*<div class="articleBody">~呼び出されたアーカイブ等 記事表示~<!-- / .articleBody END --></div>部分
本文全てではなく文字数を設定と「続きを読む」を表示しました
<div class="articleBody">
<?php echo mb_substr(get_the_excerpt(), 0, 30); ?>
<p>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<p class="mores" align="right">&nbsp;続きを読む &raquo;</p>
</a>
</p>
<!-- / .articleBody END --></div>
通常は <?php the_excerpt(); ?> を使用しますテンプレートタグ/the excerpt
表示文字数等をカスタマイズしたい場合上記のように <?php echo mb_substr(get_the_excerpt(), 0, 30); ?> とします
デフォルトでは <?php echo mb_substr(get_the_excerpt(), 0, 110); ?> です
お好みの表示文字数に変更します

*続きを読むの追加とか(これも凄く時間がかかったわりに・・・単純だった><)
何に時間がかかったか?「続きを読む」の右寄せ!!
アーカイブページではなくインデックス作成での話ですがね(^_^;)
通常は <?php the_content('続きを読む »'); ?> みたいな感じですよね
スタイルシートで右寄せ・・・・まったく動きませんでした
続きを読むの文字をタグで囲んでみてまたスタイルシートで挑戦・・・ダメでした
な~~んて事ない・・・テンプレートに直せつ「align=”right”」付けるだけで動きましたとさっ
なのでアーカイブページにも「続きを読む」設置しました(*´ω`*)
参考サイト
WordPress de SEO をやろう!さん:WordPressの本文抜粋表示(the_excerpt)で文字数をコントロールする について

ここまではページが存在する場合記事が表示されます
ページが存在しなかった場合に表示させる内容を追加していきます
ページが存在しなかった場合
<?php else : ?>
<div class="article">
<h2>記事が見つかりませんでした。</h2>
<p>検索で見つかるかもしれません。</p><br />
<p><?php get_search_form(); ?></p>
<!-- / .article END --></div>
<?php endif; ?>
<?php get_search_form(); ?>は、検索フォームを置いています

*上記タグ最後の <?php endif; ?> 後にリセット?タグ追加
archive.php
<?php wp_reset_query(); ?>

*6行目 <!-- / #main END --></div> の箇所の下に
archive.php
<?php get_sidebar(); ?>
<?php get_footer(); ?>
<?php get_sidebar(); ?>は、sidebar.php を読み込んでいます
<?php get_footer(); ?>は、footer.php を読み込んでいます

これで完了です

2012/01/12 Wordpress
2012/01/14 ,
Comments(0)
関連記事