閉じる
閉じる
閉じる
  1. 18監査事務所が会計士資格を誤表記で有報訂正が必要らしい
  2. 内部統制新基準が2025年3月期より適用に(公開草案)
  3. デューデリジェンス(DD)費用の税務上の取り扱い
  4. テレワークの交通費、所得税の非課税限度額適用の有無は本来の勤務地で判断…
  5. プライム市場上場会社、88.1%が英文招集通知を提供
  6. タクシー、インボイス対応か否かは表示灯での表示を検討?
  7. 副業の事業所得該当判断の金額基準はパブコメ多数で見直し
  8. 総会資料の電子提供制度、発送物の主流はアクセス通知+議案等となりそう
  9. 押印後データ交付の場合、作成データのみの保存は不可(伝帳法)
  10. 四半期開示の議論再開(第1回DWG)
閉じる

出る杭はもっと出ろ!

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

以前書いた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の自動更新

  2. Akismetを1週間使ってみた感想

  3. 「いいね」ボタンのプラグインを変更しました

  4. スマートフォン用のテーマを導入しました

  5. Tagページのカスタマイズ

  6. WordPressのサーバーを移管する際のメモ(その1)




カテゴリー

最近の記事

ブログ統計情報

  • 12,952,475 アクセス
ページ上部へ戻る