Repeat code, change variable?

时间:2015-10-23 作者:James Frank Haleavy

这在WordPress中可能吗?

比如,如果我使用一段代码来显示Post1图像+标题,然后再使用一些代码来显示该类别中的六篇文章。。。

但是要做下一个分类,我必须再次粘贴整个代码并更改分类。

我可以只编写代码“repeat,but change variable to \\uuuuuuuuuuuu,variable to \\uuuuuuuuuuuuuuuuuuuuu吗?”?

谢谢,JH

---
<div class="category-container">
        <div class="category-container-category-title" style="background-color:#004377;">
            Cat 1
        </div>  
        <div class="category-container-category-post" >
            <?php $posts = get_posts( "cat=\'50\'&numberposts=1" ); ?>
            <?php if( $posts ) : ?>
            <?php foreach( $posts as $post ) : setup_postdata( $post ); ?>

            <a href="<?php echo get_permalink($post->ID); ?>" >
                <div class="thumbnail-box" style="background-color:#004377;">
                    <?php if ( has_post_thumbnail()) : the_post_thumbnail(\'thumb-thumb\'); endif; ?>
                    <h3><?php echo $post->post_title; ?></h3>
                </div>
            </a>
            <?php endforeach; ?>
            <?php endif; ?>
        </div>
    </div>

    <div class="category-container-category-posts">
        <?php
        $args=array(
        \'cat\' => \'50\',
        \'offset\' => 1, 
        \'showposts\'=>6,
        \'caller_get_posts\'=>1
        );
        $my_query = new WP_Query($args);
        $offset = 3;
        if( $my_query->have_posts() ) {
        while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
            <div>
                <h5 style="padding-bottom:25px;"><b>
                    <?php the_title(); ?></b>
                </h5>
            </div>
        </a>
        <?php
        endwhile;
        } //if ($my_query)
        wp_reset_query();  // Restore global post data stomped by the_post().
        ?>
    </div>
---

2 个回复
SO网友:Chris

因此,您基本上不想不断重复相同的HTML。您应该将要显示的所有标记和类别放入一个数组中。然后迭代该数组,每次查询和打印HTML。必要时,可以使用条件来显示不同的HTML。

$terms = array(
    array(
        \'taxonomy\' => \'category\',
        \'terms\' => array(1)
    ),
    array(
        \'taxonomy\' => \'tag\',
        \'terms\' => array(\'code\')
    )
    //...
);
然后重复这些。。。

foreach( $terms as $set ) {

    //build args
    $args = array(
        \'post_type\' => \'post\'
    );

    if( $set[\'taxonomy\'] == \'tag\' )
        $args[\'tag_slug__and\'] = $set[\'terms\'];

    if( $set[\'taxonomy\'] == \'category\' )
        $args[\'category__in\'] = $set[\'terms\'];

    //create new WP_Query
    $query = new WP_Query( $args );

    if( $query->have_posts() ) : 
        while( $query->have_posts() ) :
            $query->the_post();
            ?>

                <!-- HTML -->

            <?php
        endwhile;
    endif;

}
你也可以绕过自己的建筑$terms 通过使用get_terms(), 但如果您试图在显示中显示变化,上述操作应该可以实现。

SO网友:luukvhoudt

使用php函数的强大功能。

function repeat_me($var1, $var2) {
    echo \'<div>my markup..\'.$var1.\'</div>\'.$var2;
}
repeat_me($id1, $obj1);
repeat_me($id2, $obj2);
...

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp