長文失礼します。PHPの記述方法で不明な点があるのですが。
現在の環境
現在、全てのページ(固有、投稿含む)においてCSSを二つ読み込んでいます。一つは全てのページに読み込ませるメインのCSS。二つ目は各ページ毎に読み込ませる固有のCSS、この二つ目は"ページスラッグ名.css"となるようにPHPで生成しています。例えば"/about.php"であれば"about.css", "/2010/12/sample-post.php"であれば"sample-post.css"を読み込みます。
分からない事。カテゴリー、アーカイブページ: 対象url "~/category/name/", "~/2010/12/"
まず、カテゴリーや日付別の投稿を一覧表示する時、絞られた投稿記事一覧はリストで表示し、最新の投稿は一番上に表示されるようになってます。
category.phpから抜粋(archive.phpも基本は同じ)
<ul class="post-entry-list"><br />
<?php if (is_category()){ $posts = query_posts($query_string . '&showposts=30'); } ?><br />
<?php while (have_posts()) : the_post(); ?><br />
<li><?php the_title(); ?></li><br />
<?php endwhile; ?><br />
</ul>
出力例
- 投稿1
- 投稿2
- 投稿3
となります。
問題はこの時に読み込まれる固有CSSで、対象のカテゴリー、対象の日付分の投稿を表示すると必ず記事1、つまり最新の投稿の二つ目の固有CSSが読み込まれてしまうのです。出来る事ならカテゴリー、アーカイブページでは固有CSSは読み込ませないようにしたいのです。
固有CSSを生成させるPHP (header.php)
以下header.php内で二つ目の固有CSSを生成させているPHPコードです。
<?php<br />
$pageid = get_page_uri($post->ID);<br />
if ( strpos( $pageid,"/") ) {<br />
$tempid = split("/",$pageid);<br />
$cnt = count( $tempid ) - 1 ;<br />
$pageid = $tempid[$cnt];<br />
}<br />
$bloginfo = get_bloginfo('template_url');<br />
echo '<link rel="stylesheet" type="text/css" media="screen, projection" href="' . $bloginfo . '/css/specific/' . $pageid . '.css" />' ;<br />
?>