フォーラムへの返信

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • >kvexさん

    申し訳ございません。
    説明不足でした。

    トップページだけでなく、
    各カテゴリページを表示したページでも、
    トップページと同じ、最新4件+それ以降といった表示にしたいのです。

    例えば、カテゴリ1、カテゴリ2、カテゴリ3、それぞれのページで、
    それぞれのカテゴリにとっての最新記事から4件目+それ以降、といった具合です。

    ちなみに、一番最初のloop.phpに戻すとデフォルト表示、
    すなわち、カテゴリ内の全てのコンテンツが同一レイアウトになってしまいます。

    使用テーマではarchive.phpがカテゴリページのphpでしたので、
    archive.phpにリンクさせたloop.phpをトップページのloop構造と同一の物にすれば、
    トップページと同じく、最新から4件+それ以降の処理が出来ると思った訳です。

    いかがでしょうか?

    >kvexさま

    何度も何度もありがとうございます。

    ご指摘の通り試行錯誤してみましたが、
    やはりカテゴリページに行くと4件目以降のレイアウトが反映されます。

    こんな感じです。
    トップページはhome.phpでloop_home.phpを読み出し。
    (これでトップページは希望通りの表示でOK!)
    カテゴリページはarchive.phpでloop.phpを読み出し。

    archive.phpをこうしました。

    <?php get_header(); ?>
    <div class="content-title">
    <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
        <?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
            <?php /* If this is a category archive */ if (is_category()) { ?>
            <?php printf(__('%s'), single_cat_title('', false)); ?>
            <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
            <?php printf(__('Posts tagged &quot;%s&quot;'), single_tag_title('', false) ); ?>
            <?php /* If this is a daily archive */ } elseif (is_day()) { ?>
            <?php printf(_c('Daily archive %s'), get_the_time(__('M j, Y'))); ?>
            <?php /* If this is a monthly archive */ } elseif (is_month()) { ?>
            <?php printf(_c('Monthly archive %s'), get_the_time(__('F, Y'))); ?>
            <?php /* If this is a yearly archive */ } elseif (is_year()) { ?>
            <?php printf(_c('Yearly archive %s'), get_the_time(__('Y'))); ?>
            <?php /* If this is an author archive */ } elseif (is_author()) { ?>
            <?php _e('Author Archive'); ?>
            <?php /* If this is a paged archive */ } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>
            <?php _e('Blog Archives'); ?>
            <?php } ?>
        <a href="javascript: void(0);" id="mode"<?php if ($_COOKIE['mode'] == 'grid') echo ' class="flip"'; ?>></a>
    </div>
    <?php get_template_part('loop'); ?>
    <?php get_template_part('pagination'); ?>
    <?php get_footer(); ?>

    loop.phpのソースはloop_home.phpと同一です。

    自分、なにか筋違いなことしてるのかしら?

    >kvexさん

    丁寧に教えて頂いてどうもありがとうございます。
    教えて頂いた通りにすると、
    4件目まで表示される様になりました!

    その後、自力でなんとか試行錯誤しています。
    【ここは4件目以降】の部分に記載し、
    あとはCSSで希望通りの表示出来そうです!

    ただ、もう一つだけ質問させてください。
    現状だと、カテゴリページに飛ぶと、
    1件目から【ここは4件目以降】の部分に記載したレイアウトが反映されます。

    希望はトップページ&各カテゴリのトップページすべて、
    この新規4件+それ以降というレイアウトにしたいのです。
    なにかアイデアはありますか?

    どうぞよろしくお願いします。

    >kvexさん

    教えて頂いた通りのコードで検証してみましたが、
    コンテンツ自体が表示されなくなってしまいました。
    どこか記載ミスがありますでしょうか?

    loop.phpはこの通りです。

    <?php if ( have_posts() ) : ?>
    <?php $cnt = 0; ?>
    <div id="loop" class="<?php if ($_COOKIE['mode'] == 'grid') echo 'grid'; else echo 'list'; ?> clear">
    <?php while ( have_posts() ) : the_post(); ?>
    <?php if($pages == 1 && $cnt < 4 ) : ?>
    <div <?php post_class('post clear'); ?> id="post_<?php the_ID(); ?>">
    <?php if ( has_post_thumbnail() ) :?>
    <a href="<?php the_permalink() ?>" class="thumb"><?php the_post_thumbnail('thumbnail', array(
     'alt'	=> trim(strip_tags( $post->post_title )),
     'title'	=> trim(strip_tags( $post->post_title )),)); ?></a>
     <?php endif; ?>
    <div class="post-category"><?php the_category(' / '); ?></div>
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <div class="post-content"><?php if (function_exists('smart_excerpt')) smart_excerpt(get_the_excerpt(), 20); ?></div>
    </div>
    
    <?php $cnt++; ?>
    <?php else : ?>
    
    <?php endif; ?>
    <?php endwhile; ?>
    </div>
    <?php endif; ?>

    追記:offsetコード入力前の状態のソースを記載させて頂きます。

    ここから何処をどういじるのか、ご教授頂けると大変助かります。
    厚かましいとは思いますが、よろしくお願いします。

    index.php

    <?php get_header(); ?>
    <div class="content-title"> content1</div>
    <?php query_posts(array('post__not_in' => $exl_posts,'paged' => $paged,)); ?>
    <?php get_template_part('loop'); ?>
    <?php wp_reset_query(); ?>
    <?php get_template_part('pagination'); ?>
    <div class="content2-title">content2</div>
    <?php query_posts(array('post__not_in' => $exl_posts,'paged' => $paged,)); ?>
    <?php get_template_part('loop2'); ?>
    <?php wp_reset_query(); ?>
    <?php get_template_part('pagination'); ?>
    <?php get_footer(); ?>

    loop.php

    <?php if ( have_posts() ) : ?>
    <div id="loop" class="<?php if ($_COOKIE['mode'] == 'grid') echo 'grid'; else echo 'list'; ?> clear">
    <?php while ( have_posts() ) : the_post(); ?>
    <div <?php post_class('post clear'); ?> id="post_<?php the_ID(); ?>">
    <?php if ( has_post_thumbnail() ) :?>
    <a href="<?php the_permalink() ?>" class="thumb">
    <?php the_post_thumbnail('thumbnail', array(
    'alt'	=> trim(strip_tags( $post->post_title )),
     'title'	=> trim(strip_tags( $post->post_title )), )); ?></a>
    <?php endif; ?>
     <div class="post-category"><?php the_category(' / '); ?></div>
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <div class="post-content"><?php if (function_exists('smart_excerpt')) smart_excerpt(get_the_excerpt(), 20); ?></div>
    <?php endwhile; ?>
    </div>
    <?php endif; ?>

    loop2.php

    <?php if ( have_posts() ) : ?>
    <div id="content2">
    <div id="loop2" class="<?php if ($_COOKIE['mode'] == 'grid') echo 'grid'; else echo 'list'; ?> clear">
    <?php while ( have_posts() ) : the_post(); ?>
    <div <?php post_class('post clear'); ?> id="post_<?php the_ID(); ?>">
    <div class="post-category"><?php the_category(' / '); ?></div>
    <?php if ( has_post_thumbnail() ) :?>
    <a href="<?php the_permalink() ?>" class="thumb2">
    <?php the_post_thumbnail('thumbnail', array(
    'alt'	=> trim(strip_tags( $post->post_title )),
    'title'	=> trim(strip_tags( $post->post_title )),)); ?></a>
    <?php endif; ?>
    <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
    <div class="post-content2"><?php if (function_exists('smart_excerpt')) smart_excerpt(get_the_excerpt(), 3); ?></div>
    </div>
    <?php endwhile; ?>
    </div>
    </div>
    <?php endif; ?>

    >kvexさん

    お返事遅くなって申し訳ございません。

    上記を参考にやってみたのですが、
    そもそも根本的な部分を理解していない為か上手く行きませんでした。

    そこで色々調べた結果なんとか目的の状態になりました!

    僕の考え方はこうです/
    まず、index.php内にloopを2つ作りました。
    (これは、最新記事4件までと、それ以前の記事のレイアウトを変えたい為です。)
    <!– LOOP1 –> <!– LOOP2 –>といった具合です。

    それぞれに

    <!-- LOOP1 -->
    <?php query_posts('posts_per_page=4'); ?>
    <!-- LOOP2 -->
    <?php query_posts('posts_per_page=8&offset=4'); ?>

    を記載し、offsetで処理してみました。
    正直これが正解なのかどうか分かりませんが・・・。

    しかしこれをすると、カテゴリページに飛んだ時カテゴリが反映されなくなりました。
    もうぐちゃぐちゃ、一から考え直そうとおもいます。

    >kvexさん

    投稿が上手く出来ないので別アカから投稿します。

    お返事ありがとうございます。
    カウント用変数、複雑そうですね。
    具体的にどこをどうすればいいのかご教授いただけると大変助かります。
    よろしくお願いします。

7件の返信を表示中 - 1 - 7件目 (全7件中)