menu
閉じる
閉じる
閉じる
  1. 平成29年3月期決算のポイント-会計(その2)
  2. 平成29年3月期決算のポイント-会計(その1)
  3. 2017年4月から手取額が同額の場合も定期同額給与扱いに-平成29年度…
  4. 配当金は持参債務-株主が海外に居住している場合はどうする?
  5. 2016年3月期東芝の監査報酬は53億円-FACTA2017年4月号
  6. 仮想通貨(ビットコイン等)が消費税の非課税対象に
  7. 「法人税。住民税及び事業税等に関する会計基準」が公表されました。
  8. 株主総会で従業員株主が複数質問するも総会決議に著しい不公正がないと判断…
  9. セルフメディケーションの添付書類の見直し
  10. 不正アクセスでクレジットカード番号等の情報が流出した可能性を開示-GM…
閉じる

出る杭はもっと出ろ!

カレンダーと月別アーカイブからの表示のカスタマイズ

以前書いたCQSについて質問があったので、わかればと思って調べてみましたが、その過程でいくつか気付いたことがあります。

一番最初にカテゴリーから記事を表示すると段落が崩れてしまうという現象が発生したのでリスト化していましたが、実験のため「wordpress-3.1.2-ja」のオリジナルの”category.php”を入れてみたら以下のような表示になっていることに気づきました。

バージョンアップによるものなのかCQSを使用したことによる影響なのかは分かりませんが、これなら変にリスト化しなくてもよいので、これを採用することにしました。

ここからがある意味本題ですが、従来カレンダーの日付をクリックすると以下のような表示になってしまっていました。

つまり、カレンダー⇒リスト⇒記事となってしまい、基本的に1日1記事の投稿であるので、見る方からすると面倒です。
気にはなっていたのですが、カテゴリーやアーカイブについてはそれ用のPHPファイルがあるのにカレンダーからの表示がどのようにコントロールされているのかが分からなかったのでそのままにしてありました。

しかし今回の質問について考えていた過程で、カレンダーはいわば日別のアーカイブのようなものなので、カレンダーからの表示も結局 archive.phpで制御されているのではないかと思いつきました。
そのように考えると1日に1件しか投稿が投稿がなければ、上記のような表示になるということも理解できます。

目標とすべきは、月別のアーカイブはリスト表示⇒各記事、カレンダー⇒記事という表示を実現することです。
基本からわかるWORDPRESS3カスタマイズブックを見ていたら、「日付・時間別のアーカイブ」で優先的に適用されるファイルには順序があり、まず”date.php”で、これがなければ”archive.php”、ついで”index.php”が適用されるということでした。

Twentytenの中身には”date.php”が含まれていなかったので、個別記事ページのファイルであるsingle.phpをdate.phpと名前を変えて、日別の場合は個別記事ページの表示、それ以外(月別)の場合はリスト表示と処理を分岐させてやればいいのではないかと考えました。

ここから先は理屈はExcelの関数と似たようなもののはずという考えのもと試行錯誤の結果以下のような結論にたどり着きました。
以下は上記のとおり、single.phpの名前をdate.phpに変更し、標準的なarchive.phpのコードを参考にしたものです。コードとしてもっときれいな作り方等あると思いますが、素人ですから勘弁して下さい。

画面キャプチャだと小さくてよくわからないので、テキストで貼り付けておきます。ものすごく見にくいですが単なる参考なのですみません。

以下上記と同じ(ただしアドセンスのコードは削除)
———————————————————————–

<?php/**?* The Template for displaying all single posts.?*?* @package WordPress?* @subpackage Twenty_Ten?* @since Twenty Ten 1.0?*/
get_header(); ?>
<div id=”container”> <div id=”content” role=”main”>

<?php if ( is_day() ) : ?>? <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<div id=”nav-above”> <div><?php previous_post_link( ‘%link’, ‘<span>’ . _x( ‘&larr;’, ‘Previous post link’, ‘twentyten’ ) . ‘</span> %title’ ); ?></div> <div><?php next_post_link( ‘%link’, ‘%title <span>’ . _x( ‘&rarr;’, ‘Next post link’, ‘twentyten’ ) . ‘</span>’ ); ?></div> </div><!– #nav-above –>
<div id=”post-<?php the_ID(); ?>” <?php post_class(); ?>> <h1><?php the_title(); ?></h1>
<div> <?php twentyten_posted_on(); ?> </div><!– .entry-meta –>
<div> <?php the_content(); ?> <?php wp_link_pages( array( ‘before’ => ‘<div>’ . __( ‘Pages:’, ‘twentyten’ ), ‘after’ => ‘</div>’ ) ); ?> </div><!– .entry-content –>
<?php if ( get_the_author_meta( ‘description’ ) ) : // If a user has filled out their description, show a bio on their entries ??> <div id=”entry-author-info”> <div id=”author-avatar”> <?php echo get_avatar( get_the_author_meta( ‘user_email’ ), apply_filters( ‘twentyten_author_bio_avatar_size’, 60 ) ); ?> </div><!– #author-avatar –> <div id=”author-description”> <h2><?php printf( esc_attr__( ‘About %s’, ‘twentyten’ ), get_the_author() ); ?></h2> <?php the_author_meta( ‘description’ ); ?> <div id=”author-link”> <a href=”<?php echo get_author_posts_url( get_the_author_meta( ‘ID’ ) ); ?>”> <?php printf( __( ‘View all posts by %s <span>&rarr;</span>’, ‘twentyten’ ), get_the_author() ); ?> </a> </div><!– #author-link –> </div><!– #author-description –> </div><!– #entry-author-info –> <?php endif; ?>
<div> <?php twentyten_posted_in(); ?> <?php edit_post_link( __( ‘Edit’, ‘twentyten’ ), ‘<span>’, ‘</span>’ ); ?> </div><!– .entry-utility –> </div><!– #post-## –>
<div id=”nav-below”> <div><?php previous_post_link( ‘%link’, ‘<span>’ . _x( ‘&larr;’, ‘Previous post link’, ‘twentyten’ ) . ‘</span> %title’ ); ?></div> <div><?php next_post_link( ‘%link’, ‘%title <span>’ . _x( ‘&rarr;’, ‘Next post link’, ‘twentyten’ ) . ‘</span>’ ); ?></div> </div><!– #nav-below –> <?php comments_template( ”, true ); ?>
<?php endwhile; // end of the loop. ?>
</div><!– #content –> </div><!– #container –>
<?php else : ?>
<ul> <?php if ($posts) : foreach ($posts as $post) : start_wp(); ?> <li id=”catpost-<?php the_ID(); ?>”> <a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link: <?php the_title(); ?>”>? <?php the_title(); ?></a><br /><?php the_date(”); ?>? </li> <?php endforeach; else: ?> </ul>? <p><?php _e(‘Sorry, no posts matched your criteria.’); ?></p>? <?php endif; ?>
<?php if(is_archive()): ?> <p> <span><?php next_posts_link(‘&laquo; Previous Items’); ?></span>
<span><?php previous_posts_link(‘Next Items &raquo;’); ?></span> </p> <?php endif; ?>
</div><!– #content –> </div><!– #container –>
<?php endif; ?>
<?php get_sidebar(); ?><?php get_footer(); ?>

————————————————————————

上記により、今回の私の目標は達成できました。

日々成長。

 

 

関連記事

  1. WordPressにfacebookの「いいね!」ボタンを追加す…

  2. WordPress3.2以降へのバージョンアップ準備

  3. ブログデザインの変更

  4. WordPress カテゴリー画面のカスタマイズ-その2

  5. WordPressのリダイレクト方法

  6. .com/wordpress/というURLから/wordpres…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

カテゴリー

ページ上部へ戻る