フォーラム

[解決済み] ページ毎に複数のCSSの読み込みについて (4 件の投稿)

  1. maelll
    メンバー
    1 year前の投稿 #

    長文失礼します。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 />
    ?>
  2. php-web
    メンバー
    1 year前の投稿 #

    is_single() や is_category() 等の条件分岐タグを使って分岐すればOKだと思います。
    使い方は公式マニュアルを参照してください。
    http://wpdocs.sourceforge.jp/Conditional_Tags

  3. LVP8
    メンバー
    1 year前の投稿 #

    <?php
    if ( is_singular() ) :
    CSSを生成させているPHPコード
    endif;
    ?>

    でどうでしょう?

  4. maelll
    メンバー
    1 year前の投稿 #

    php-web様
    LVP8様

    条件分岐コードにて解決致しました。貴重なアドバイスありがとうございました。

返信

ログイン しなければ投稿できません。

About this Topic