Оптимизировать l oop in PHP - PullRequest
0 голосов
/ 11 марта 2020

Я создал al oop, который показывает правильное изображение с правильным цветом. Но я думаю, что код может быть намного меньше и намного быстрее. Но я не знаю, как сделать код умнее.

Может кто-нибудь дать советы или помочь мне?

<?php

// Setup your custom query
$args = array( 'post_type' => 'product', 'posts_per_page' => 7);
$loop = new WP_Query( $args );

while ( $loop->have_posts() ) : $loop->the_post(); ?>

    <a href="<?php echo get_permalink( $loop->post->ID ) ?>" class="d-block w-100">
        <h2><?php the_title(); ?></h2>
        <img src="<?php the_post_thumbnail_url(); ?>" class="img-fluid">
        <?php
        $brand_terms = get_the_terms($post, 'pa_kleur');
        $brand_string = ''; // Reset string
        foreach ($brand_terms as $term) : ?> <div style="display: block; margin-bottom: 50px;"><?php

            if (($term->name) == 'Roze') {
                echo '<div style="width: 20px; height: 20px; background-color: pink;" class="roze-kleur"></div>';

                $variations = $product->get_available_variations();
                foreach ( $variations as $key => $value ) {
            ?>
                <?php if ($value['attributes']['attribute_pa_kleur'] == 'roze') { ?>
                <li>
                    <span><?php echo $value['image']['url']; }?></span>
                </li></div>
            <?php
            }
            }
            if (($term->name) == 'Grijs') {
                echo '<div style="width: 20px; height: 20px; background-color: grey;" class="grijze-kleur"></div>';

                $variations = $product->get_available_variations();
                foreach ( $variations as $key => $value ) {
            ?>
                <?php if ($value['attributes']['attribute_pa_kleur'] == 'grijs') { ?>
                <li>
                    <span><?php echo $value['image']['url']; }?></span>
                </li></div>
            <?php
            }
            }
        endforeach;
        ?>
    </a><br>

<?php endwhile; wp_reset_query(); // Remember to reset ?>

Спасибо за ваше время!

1 Ответ

0 голосов
/ 11 марта 2020

Я думаю, что этот способ немного упрощен и масштабируем, потому что, если вам нужно больше условий, просто добавьте elseif или случай переключения и поиграйте с функциями.

    <?php

// Setup your custom query
$args = array( 'post_type' => 'product', 'posts_per_page' => 7);
$loop = new WP_Query( $args );

while ( $loop->have_posts() ) : $loop->the_post(); ?>

    <a href="<?php echo get_permalink( $loop->post->ID ) ?>" class="d-block w-100">
        <h2><?php the_title(); ?></h2>
        <img src="<?php the_post_thumbnail_url(); ?>" class="img-fluid">
        <?php
        $brand_terms = get_the_terms($post, 'pa_kleur');
        $brand_string = ''; // Reset string
        foreach ($brand_terms as $term) : ?> <div style="display: block; margin-bottom: 50px;"><?php
            $act = 1;
            if ($term->name=='Roze') {
                $color = 'pink';
                $class = 'roze';
            }else{
                $color = 'grey';
                $class = 'grijze';
            }

            $variations = $product->get_available_variations();
            foreach ( $variations as $key => $value ) {
                if ($value['attributes']['attribute_pa_kleur'] == 'roze') {
                    ?>
                    <div style="width: 20px; height: 20px; background-color: <?=$color?>;" class="<?=$class?>-kleur"></div>
                        <li>
                            <span><?php echo $value['image']['url']; }?></span>
                        </li>
                    </div>
                    <?php
                }
            }
        endforeach;
        ?>
    </a><br>

<?php endwhile; wp_reset_query(); // Remember to reset ?>

Надеюсь, это работает для вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...