0

我正在 wordpress 引擎上构建站点,我需要在一页上显示四个循环(每个循环来自不同的类别)。我试着把它写得很聪明,因为我不希望代码重复。看这个:

http://codepad.org/aTh87QAN

如您所见,我不想复制每个循环中的代码,我的意思是第 19-31 行。

<?php
    $events_sep = new WP_Query( array_merge($args_common, $args_sep) );
    while ($events_sep->have_posts()) : $events_sep->the_post();
?>
    <li class="event-entry date-<?php the_field('event-date'); ?>">
        <a href="index.php/<?php the_field('event-venue'); ?>">
            <img src="<?php bloginfo('template_url'); ?>/img/program/<?php the_field('event-venue'); ?>-22px.jpg" alt="">
        </a>
        <?php echo the_content(); ?>
        <a class="permalink" href="index.php/<?php the_field('event-venue'); ?>">więcej informacji</a>
        <div class="clearfix"></div>
    </li>
<?php endwhile; ?>

所以我尝试将它保存为 php 变量,但它不起作用。我对 php 不是很有经验(不如 javascript),但我看不到这段代码,可能你知道我的意思;)

4

1 回答 1

1

这就是功能的用途之一,即执行重复性任务。functions.php在你的文件中构建一个这样的:

function my_query_events( $common, $unique, $title, $class )
{
    echo "<h4>$title</h4>";
    echo "<ul class='events-list $class'>";
    $events_sep = new WP_Query( array_merge( $common, $unique ) );
    while ( $events_sep->have_posts() ) : $events_sep->the_post();
    ?>
    <li class="event-entry date-<?php the_field('event-date'); ?>">
        <a href="index.php/<?php the_field('event-venue'); ?>">
            <img src="<?php bloginfo('template_url'); ?>/img/program/<?php the_field('event-venue'); ?>-22px.jpg" alt="">
        </a>
        <?php echo the_content(); ?>
        <a class="permalink" href="index.php/<?php the_field('event-venue'); ?>">więcej informacji</a>
        <div class="clearfix"></div>
    </li>
    </ul>
    <?php 
    endwhile; 
}

并在您的模板中多次调用它并传递您自己的特定参数:

<ul class="program-info">
    <li class="pure-u-1-4 program-table">
        <?php my_query_events( $args_common, $args_sep, 'wrzesień', 'sep' ); ?>
        <?php my_query_events( $args_common, $args_oct, 'październik', 'oct' ); ?>

此示例未经测试,但可以让您了解如何继续并适应您的需求。

于 2013-09-08T12:29:35.303 回答