Получить Wordpress поочередно отображая 2 и 1 сообщения подряд

wordpress wordpress-theming

53 просмотра

1 ответ

Я пытаюсь закодировать свою домашнюю страницу так, чтобы в ней было 2 сообщения подряд, а затем в следующем ряду - одно сообщение, в следующем ряду - 2 сообщения и так далее.

Я пытался использовать эту статью, однако каждый раз, когда я пытаюсь, я просто получаю глюки.

https://perishablepress.com/two-column-horizontal-sequence-wordpress-post-order/

Если у кого-то есть какие-либо решения для кодирования, я буду очень признателен

Это мой текущий файл index.php

<?php

get_header();

if (have_posts()) :
while (have_posts()) :
$i++; if(($i % 2) == 0) : $wp_query->next_post(); else :
the_post(); ?>
<article class="post">
    <div id="left-column">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p>
    <?php echo get_the_excerpt(); ?>
    <a class="moretext" href="<?php the_permalink(); ?>">Read more</a>
    </p>
    </div>
</article>

<?php endif; endwhile; else: ?>
<div>Alternate content</div>
<?php endif; ?>


<?php $i = 0; rewind_posts(); ?>

<?php if (have_posts()) :
while (have_posts()) :
$i++; if(($i % 2) !== 0) : $wp_query->next_post(); else :
the_post(); ?>
<article class="post">
    <div id="right-column">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p>
    <?php echo get_the_excerpt(); ?>
    <a class="moretext" href="<?php the_permalink(); ?>">Read more</a>
    </p>
    </div>
</article>


<?php endif; endwhile; else: ?>
<div>Alternate content</div>
<?php endif; 

get_footer();

?>

Автор: user6738171 Источник Размещён: 08.11.2019 11:23

Ответы (1)


0 плюса

Каждый раз, когда вы вызываете the_post (); почтовый индекс продвигается, и данные следующего сообщения попадают в область видимости.

Создайте новый файл шаблона в своей теме и добавьте новую страницу, используя этот шаблон;

<?php
/*
 * Template Name: page-2-col
 */

get_header();

$i = 0;

$args = array(
    'posts_per_page' => 5,
    'paged' => 1
);

$the_query = new WP_Query($args);

if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {

        if( $i %2 == 1 ) {
            $the_query->the_post(); ?>
            <article class="post col-md-12">
                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <p>
                    <?php echo get_the_excerpt(); ?>
                    <a class="moretext" href="<?php the_permalink(); ?>">Read more</a>
                </p>
            </article>
            <?php
        }
        else {
            $the_query->the_post(); ?>
            <article class="post col-md-6">
                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <p>
                    <?php echo get_the_excerpt(); ?>
                    <a class="moretext" href="<?php the_permalink(); ?>">Read more</a>
                </p>
            </article>      
            <?php $the_query->the_post(); ?>
            <article class="post col-md-6">
                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <p>
                    <?php echo get_the_excerpt(); ?>
                    <a class="moretext" href="<?php the_permalink(); ?>">Read more</a>
                </p>
            </article>
            <?php
        }
        ?>
        <?php
        $i++;
    }
}
else {
    echo '<p>Sorry, no posts matched your criteria.</p>';
}
get_footer();

Чтобы добавить начальную загрузку, в вашем functions.php;

function learningWordPress_resources() {
    wp_enqueue_style('style', get_stylesheet_uri());
    wp_enqueue_script( 'bootstrap-js', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', array('jquery'), '3.3.7', true );
    wp_enqueue_style( 'bootstrap-style', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' );
}

add_action('wp_enqueue_scripts', 'learningWordPress_resources');
Автор: EvilEpidemic Размещён: 20.08.2016 02:51
Вопросы из категории :
32x32