• 解決済 sui0205

    (@sui0205)


    お世話になります。
    現在WSC 4.3というテーマを元に
    サイト全体のwidthを900px変更してカスタマイズをしています。
    サイドバーについての質問なんですが、ページごとにサイドバーをなくしたり、
    又はサイドバーの内容をページごとに変えたい場合、
    どのように作ればいんでしょうか?

    とりあえず、やりたいことは
    TOPページ…サイドバーをなくして横幅をいっぱいいっぱい使いたい
    Aページ…TOPも同じで横幅をいっぱいいっぱい使いたい
    Bページ…サイドバーを表示したい
    Cカテゴリー…Bページと違う内容のサイドバーを表示したい
    といった感じに作っていきたいのですが。。。

    まずTOPページにサイドバーをなくすのに行ったのは
    page-toppage.phpの

    <?php get_sidebar(); ?>

    削除してサイドバーをなくし、幅を調整するのにstyle.css に

    #alpha_top{;padding: 15px 17px 10px 17px;width: 900px;}

    追加して、page-toppage.phpに
    <div id=”alpha”>を<div id=”alpha_top”>しました。

    ほかのページも各ページごとにサイドバーの設定をしていきたいのですが
    どうしたらいいでしょうか?
    回答よろしくお願いします。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • KKT

    (@kvex)

    いろんなやりかたがあるとは思いますが、サイドバーの可否とコンテンツブロックの幅だけの問題なら

    ■ページの場合
    page.php 内で、条件判定するだけで良いのでは?

    <?php if (is_page(array(1,’test’,3,’sample’))) : ?>
    幅広ペ-ジの場合
    <?php else : ?>
    幅狭ページの場合
    <?php end if ?>

    ■カテゴリの場合
    category.php 内で、なんか同じような処理

    など。

    トピック投稿者 sui0205

    (@sui0205)

    kvex様いつも回答ありがとうございます。

    すみません。PHP自体よく分かってなくて、いまいち理解できてないんですが

    <?php if (is_page(array(1,’test’,3,’sample’))) : ?>

    この上のタグの(1,’test’,3,’sample’)のところにページIDを
    入れて、page.phpに追加すればいんですよね?

    幅広ペ-ジの場合と幅狭ページの場合の指定は
    どうすればいんでしょうか?

    KKT

    (@kvex)

    固定ページで話を進めますね。
    WSCにはpage-sitemap.php とか、専用のページファイルがありますが、ちょっとそれはおいておきます。
    それ以外の、page.php で表示されるページを前提にします。

    <?php get_sidebar(); ?>
    を、ページスラッグ staff、profile、members、の3つのページでは読ませないようにするには

    <?php if (!is_page(array('staff','profile','members'))) : ?>
    <?php get_sidebar(); ?>
    <?php enfif; ?>

    などとします。上記は’以外のページ’という指定ですので、その辺は臨機応変にどうぞ。

    同じく、divのidを
    alpha(幅が狭い)、alpha-wide(幅が広い)などと仮定すると

    <?php if (!is_page(array('staff','profile','members'))) : ?>
    <div id="alpha-wide" class="alpha_bg">
    <?php else: ?>
    <div id="alpha" class="alpha_bg">
    <?php enfif; ?>

    ということになると思います。

    ‘staff’,’profile’,’members’
    のときは、サイドバーが無しに、id=”alpha-wide”
    それ以外の時は サイドバーが有りで、id=”alpha”

    トピック投稿者 sui0205

    (@sui0205)

    style.cssにalpha-wideを作って
    <?php get_sidebar(); ?>を消して

    <?php if (!is_page(array(‘web’))) : ?>
    <div id=”alpha-wide” class=”alpha_bg”>
    <?php else: ?>
    <div id=”alpha” class=”alpha_bg”>
    <?php enfif; ?>

    上のタグをpage.phpに追加してみたのですが、
    なぜか、webというページのみが真っ白になってしまいました。。。

    いちおう、alpha-wideは
    もともとあるalphaの設定の

    #alpha{float: left;text-align:left;width: 630px;overflow: hidden;padding: 17px 17px 20px 18px;}

    をコピーしてwidthのみを変えたんですが。。。

    KKT

    (@kvex)

    ちょ(苦笑
    ミスタイプしてました;;

    <?php enfif; ?>
    じゃなくて
    <?php endif; ?>

    d と f が隣だった;;

    トピック投稿者 sui0205

    (@sui0205)

    <?php endif; ?>に修正したら、webというページの
    サイドバーはなくなってたんですが、widthが変わってませんでした。。
    style.cssのalpha-wideがおかしんでしょうか?

    KKT

    (@kvex)

    う~んと、どんな状況なのかよく見えませんが、ソースを表示すると思ったとおりになってるか見ればわかりませんか?
    一番いいのは、firefoxのFirebugとか、Safariの開発者モードで見るとかなんですけどねぇ。

    トピック投稿者 sui0205

    (@sui0205)

    確かに開発者モードで見れたら便利なんですが。。。

    もう一度自分で確認してみたんですが、
    結局原因がみつかりませんでした。

    KKT

    (@kvex)

    <?php if (!is_page(array('web'))) : ?>
    <div id="alpha-wide" class="alpha_bg">
    <?php else: ?>
    <div id="alpha" class="alpha_bg">
    <?php enfif; ?>

    を書いたと言うことはページ「web」のときは
    <div id="alpha" class="alpha_bg">
    となるのですが、ソースを見てそれはOKですか?

    トピック投稿者 sui0205

    (@sui0205)

    すみません。
    よく見たら「web」ページのサイドバーがなくなっじゃなくて、
    全部のページサイドバーがなくなっていて、
    表示されているのあ、各カテゴリーのページのサイドバーでした。

    てことは

    <?php if (!is_page(array('web'))) : ?>
    <div id="alpha-wide" class="alpha_bg">
    <?php else: ?>
    <div id="alpha" class="alpha_bg">
    <?php enfif; ?>

    ↑自体設定がうまくいってないみたいです。。

    KKT

    (@kvex)

    その部分はサイドバーには関係ないですよぉぉ。

    そこは、コンテンツ部分で、幅が広いのか狭いのかを表示させてる部分ですから。

    <?php if (!is_page(array('web'))) get_sidebar(); ?>
    サイドバー部分に関しては、上記にて web 以外 でサイドバーが読み込まれます。
    web だけでしたらarrayなんてする必要は無いですけどね。
    <?php if (!is_page('web')) get_sidebar(); ?>

    トピック投稿者 sui0205

    (@sui0205)

    とりあえず、「web」ページを入れてやってみただけなので、
    最終的には、複数入れる予定です。

    トピック投稿者 sui0205

    (@sui0205)

    <?php if (!is_page(array('web'))) get_sidebar(); ?>

    上のget_sidebar(); ?というのは、いるんでしょうか?
    初めの説明ではなかったと思うのですが。。。

    <?php if (!is_page(array(‘web’))) get_sidebar(); ?>をコピーして試してみましたが画面が真っ白になってしました。

    KKT

    (@kvex)

    サイドバー部分は、それはそれで書かないといけませんよ。
    get_sidebarが不要なんて書いた覚えは無いですけど、逐一書かないで「たとえば」という前提で書いてます。

    <?php if (!is_page(array('web'))) get_sidebar(); ?>

    たった今私の環境で上記を書いてみたら、ページ「web」のときはサイドバーが読み込まれずに、その他のページでは読み込まれましたよ。

    全部書かないとわかりづらいですかね?
    とりあえず、単純な page.php を想定して書いてみますね。

    <?php get_header(); ?>
    
    <?php if (!is_page(array('web'))) : ?>
    <div id="alpha" class="alpha_bg">
    <?php else: ?>
    <div id="alpha-wide" class="alpha_bg">
    <?php endif; ?>
    
    <!-- メインエリア -->
    <?php if (have_posts()) : ?>
    
    <?php while (have_posts()) : the_post(); ?>
    
    <div id="page-<?php the_ID(); ?>" class="page-asset asset">
    	<div class="asset-header">
    		<h1 id="page-title" class="asset-name"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
    	</div>
    	<div class="asset-content">
    
    		<div class="asset-body">
    		<?php the_content('Read the rest of this entry &raquo;'); ?>
    		</div>
    
    	</div>
    	<div class="asset-footer">
    	</div>
    
    <?php endwhile; ?>
    
    </div>
    
    <?php else : ?>
    <h2 class="center"><?php _e('Sorry, no posts matched your criteria.'); ?></h2>
    <?php endif; ?>
    
    <?php comments_template(); ?>
    
    </div>
    
    <?php if (!is_page(array('web'))) get_sidebar(); ?>
    <?php get_footer(); ?>

    webじゃないとき : id=alpha で サイドバーを読まない
    webのとき : id=alpha-wide で サイドバーを読む

    これでいいかな?
    今現在、うちの環境ではちゃんと動いています。

    トピック投稿者 sui0205

    (@sui0205)

    いろいろと勘違いをしていて

    `<?php if (!is_page(array(‘web’))) : ?>
    <div id=”alpha” class=”alpha_bg”>
    <?php else: ?>
    <div id=”alpha-wide” class=”alpha_bg”>
    <?php endif; ?>`

    しか入れてませんでした。。。

    <?php if (!is_page(array(‘web’))) get_sidebar(); ?>
    を追加したらできました。

    kvex様、本当にありがとうございました。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • トピック「サイドバーの設定」には新たに返信することはできません。