morningdawning
  • 0
Новичок

960gs разных классов в постах-тизерах

  • 0

Мне трудно использовать тизеры в моей теме WordPress (на основе 960gs), как вы можете видеть здесь http://img17.imageshack.us/img17/794/schermata20110420a15045.png то, что я получил до сих пор, это одно «избранный» пост и три поста-тизера с миниатюрами, которых, вероятно, будет шесть (таким образом, на главной странице будет отображаться семь постов). Проблема в том, что для этого мне нужно назначить класс «grid_2 alpha» для сообщения с тизерами, и я не знаю, как назначить этот класс только первому тизеру слева, оставив остальные без альфы или омеги. class и помещая омега-класс только в последний тизерный пост (седьмой).

Если можете помочь, вот код, который я использую для цикла:

<?php $firstClass = 'firstpost'; ?>
<?php /* Start loop */ ?>
<?php while (have_posts()) : the_post();  ?>

    <?php if (function_exists('yoast_breadcrumb')) { if (is_page() && $post->post_parent) { yoast_breadcrumb('<p id="breadcrumbs">','</p>'); } } ?>

<div class="post <?php echo $firstClass; ?>">
<?php $firstClass = 'grid_2 alpha'; ?>

<a href="<?php echo get_permalink(); ?>"><img src="<?php echo get_post_meta($post->ID, "Thumbnail", true);?>" width="140" height="100" style="padding-bottom:20px;" /></a>

    <h1><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h1>
    <?php the_content(); ?>
    <?php wp_link_pages(array('before' => '<nav id="page-nav"><p>' . __('Pages:', 'roots'), 'after' => '</p></nav>' )); ?>
</div>
<?php endwhile; // End the loop ?>

также я хотел бы знать, как я могу добавить текст над разделом тизера под первым избранным постом. Извините за слишком много вопросов и за мой плохой английский, как вы понимаете, я не разработчик, но я искал одну неделю и не смог найти ничего полезного для своих проблем. Заранее спасибо за любую помощь, я очень ценю это.

Итак, есть другие страницы циклов и front-page.php

главная страница.php

<?php get_header(); ?>
        <div id="content" class="<?php echo roots_container_class; ?>"> 
            <div id="main" class="<?php echo get_option('roots_main_class'); ?> grid_6" role="main">
                <div class="container">
                    <?php get_template_part('loop', 'page'); ?>
                </div>
            </div><!-- /#main -->
            <aside id="sidebar" class="<?php echo get_option('roots_sidebar_class'); ?> grid_6" role="complementary">
                <div class="container">
                    <?php get_sidebar(); ?>
                </div>
            </aside><!-- /#sidebar -->
        </div><!-- /#content -->
<?php get_footer(); ?>

петля-search.php

<?php /* If there are no posts to display, such as an empty archive page */ ?>
<?php if (!have_posts()) : ?>
    <div class="notice">
        <p class="bottom">Sorry, no results were found.</p>
    </div>
    <?php get_search_form(); ?> 

<?php endif; ?>

<?php /* Start loop */ ?>
<?php while (have_posts()) : the_post();  ?>

        <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <header>
                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <time pubdate datetime="<?php the_time('c'); ?>">Posted on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>.</time>
                <?php if (get_option('roots_post_author') == 'checked') { ?>
                <p class="byline author vcard">
                    Written by <span class="fn"><?php the_author(); ?></span>
                </p>
                <?php } ?>
            </header>
            <div class="entry-content">
    <?php if (is_archive() || is_search()) : // Only display excerpts for archives and search ?>
            <?php the_excerpt(); ?>
    <?php else : ?>
            <?php the_content('Continue&hellip;'); ?>
    <?php endif; ?>
            </div>
            <footer>
                <?php $tag = get_the_tags(); if (!$tag) { } else { ?><p><?php the_tags(); ?></p><?php } ?>
            </footer>
        </article>

        <?php comments_template('', true); ?>

<?php endwhile; // End the loop ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if ($wp_query->max_num_pages > 1) : ?>
    <nav id="post-nav">
        <div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'roots' ) ); ?></div>
        <div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'roots' ) ); ?></div>
    </nav>
<?php endif; ?>

петля-single.php

<?php /* Start loop */ ?>
<?php while (have_posts()) : the_post();  ?>

    <article <?php post_class() ?> id="post-<?php the_ID(); ?>">
        <header>
            <h1 class="entry-title"><?php the_title(); ?></h1>
            <time class="updated" datetime="<?php the_time('c'); ?>" pubdate>Posted on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>.</time>
            <?php if (get_option('roots_post_author') == 'checked') { ?>
            <p class="byline author vcard">
                Written by <span class="fn"><?php the_author(); ?></span>
            </p>
            <?php } ?>
            <?php if (get_option('roots_post_tweet') == 'checked') { ?>
            <a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
            <?php } ?>
        </header>
        <div class="entry-content">
            <?php the_content('<p>Read the rest of this entry &raquo;</p>'); ?>
        </div>
        <footer>
            <?php wp_link_pages(array('before' => '<nav id="page-nav"><p>' . __('Pages:', 'roots'), 'after' => '</p></nav>' )); ?>
            <p><?php the_tags(); ?></p>
        </footer>
        <?php comments_template(); ?>
    </article>

<?php endwhile; // End the loop ?>

loop.php

<?php /* If there are no posts to display, such as an empty archive page */ ?>
<?php if (!have_posts()) : ?>
    <div class="notice">
        <p class="bottom">Sorry, no results were found.</p>
    </div>
    <?php get_search_form(); ?> 

<?php endif; ?>

<?php /* Start loop */ ?>
<?php while (have_posts()) : the_post();  ?>

        <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <header>
                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <time pubdate datetime="<?php the_time('c'); ?>">Posted on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>.</time>
                <?php if (get_option('roots_post_author') == 'checked') { ?>
                <p class="byline author vcard">
                    Written by <span class="fn"><?php the_author(); ?></span>
                </p>
                <?php } ?>
            </header>
            <div class="entry-content">
    <?php if (is_archive() || is_search()) : // Only display excerpts for archives and search ?>
            <?php the_excerpt(); ?>
    <?php else : ?>
            <?php the_content('Continue&hellip;'); ?>
    <?php endif; ?>
            </div>
            <footer>
                <?php $tag = get_the_tags(); if (!$tag) { } else { ?><p><?php the_tags(); ?></p><?php } ?>
            </footer>
        </article>

        <?php comments_template('', true); ?>

<?php endwhile; // End the loop ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if ($wp_query->max_num_pages > 1) : ?>
    <nav id="post-nav">
        <div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'roots' ) ); ?></div>
        <div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'roots' ) ); ?></div>
    </nav>
<?php endif; ?>

Действительно спасибо за вашу помощь.

Share
  1. Еще лучший способ — проверить текущую позицию сообщения в запросе :

    global $wp_query;
    
    while (have_posts()) : the_post();
        $my_class = '';
        if ( $wp_query->current_post == 0 ) $my_class = ' first';
        if ( $wp_query->current_post == $wp_query->post_count - 1 ) $my_class = ' last';
    
        ?><div class="post<?php echo $my_class; ?>"><?php
    
        ...
    
        if ( $wp_query->current_post == $wp_query->post_count - 1 ) echo 'THE CONTENT UNDER THE FIRST POST';
    
    endwhile; // End the loop
    
    • 0
    • Спасибо за ответ. Я пробовал оба способа, и когда я использую цикл, отличный от того, который я опубликовал, он всегда НИЧЕГО не показывает. Никаких сообщений вообще, только заголовок, поэтому мне интересно, могут ли проблемы быть в том, что у меня другой файл циклов, но я все проверил и, похоже, не делюсь переменными или чем-то еще. Тем не менее, все, что я пытаюсь сделать, бесполезно, потому что оно вообще ничего не показывает 🙁

      • 0
    • Мой код должен работать без проблем. Я полагаю, вам следует обновить свой пост, указав фактический цикл, который вы используете, чтобы я мог рассказать вам больше…

      • 0
    • Но на самом деле это все, что я опубликовал, это именно цикл, который я использую для предоставления разных классов первому сообщению и другим. Я не разработчик, я добился этого, следуя руководству по избранному сообщению о структуре темы (тема корней), и я не знаю, почему он не принимает другой цикл, он просто не = \ но я могу опубликовать другие страницы циклов, если это поможет!

      • 0
    • @Antonio, пожалуйста, опубликуйте индивидуальный код, в котором вы реализовали мое решение.

      • 0
    • Спасибо за ответ. Я пробовал оба способа, и когда я использую цикл, отличный от того, который я опубликовал, он всегда НИЧЕГО не показывает. Никаких сообщений вообще, только заголовок, поэтому мне интересно, могут ли проблемы быть в том, что у меня другой файл циклов, но я все проверил и, похоже, не делюсь переменными или чем-то еще. Тем не менее, все, что я пытаюсь сделать, бесполезно, потому что оно вообще ничего не показывает 🙁

      • 0
    • Трудно сказать, где может быть ошибка. предположительно, вы добавляете к этому весь необходимый код, чтобы напечатать заголовок и содержимое там, где вы хотите? приведенное выше ничего не выводит как есть, ему нужна ваша html-разметка плюс the_title() и the_content() и т. д. Попробуйте включить отладку в WordPress, чтобы увидеть, получаете ли вы ошибки php.

      • 0
  2. добавить переменную-счетчик перед циклом, $counter = 1;, перед концом цикла увеличить счетчик, $counter++;. теперь в вашем цикле вы можете проверить, какой пост вы отображаете, если он первый, последний или где-то между ними, и соответственно распечатать правильный html.

    <?php
    $counter = 1;
    while (have_posts()) : the_post();
    
        if($counter==1){
            // first post
        } elseif($counter==$wp_db->found_posts){
            // last post
        } else {
            // somewhere between first and last
        }
    
        $counter++;
    endwhile; // End the loop
    ?>
    
    • 0

Оставить ответ

You must login to add an answer.