WordPress循环中每个帖子的ACF背景色

时间:2018-10-31 作者:Dario B.

我在WordPress中有以下循环:

    <div class="container">
    <?php

    $news = array(
        \'post_type\' => \'post\',
        \'category_name\' => \'angebote\',
        \'order\' => \'ASC\',
        \'posts_per_page\' => -1
    );


    $wp_query = new WP_Query($news);
    if (have_posts()) : while (have_posts()) :
        the_post(); ?>

        <div class="main-columns">
            <div class="card-content">
                <div class="main-content liste"
                     style="background-image: url(<?php the_field(\'background-image\'); ?>
                             )">
                    <h2><?php the_title(); ?></h2>
                    <div class="row"><?php the_content(); ?></div>
                    <div class="row content-button">
                        <a href="<?php the_permalink(); ?>">
                            <p>MEHR</p>
                        </a>
                    </div>
                </div>
            </div>
        </div>
        <style>
            .card-container .main-content:hover {
                background: <?php echo get_field(\'background-farbe\' ); ?>;
                background-blend-mode: multiply;
            }
        </style>

    <?php var_dump($postid); ?>
    <?php endwhile; ?>

    <?php endif; ?>
    <?php wp_reset_query();
    ?>


</div>
可以看出,我有以下CSS,它所做的是用ACF为每个帖子添加一种颜色。

     <style>
        .card-container .main-content:hover {
            background: <?php the_field(\'background-farbe\' ); ?>;
            background-blend-mode: multiply;
        }
    </style>
问题是我只知道第一篇文章的颜色。有人能帮我解决这个问题吗?,为什么我看不到

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

好吧,你的问题在于你的CSS代码。

    .card-container .main-content:hover {
        background: <?php the_field(\'background-farbe\' ); ?>;
        background-blend-mode: multiply;
    }
它只使用类,因此它将应用于具有该类的每个元素。将相同的代码与不同的颜色相乘不会改变任何事情-只有一个这样的规则将处于活动状态。

那么如何解决这个问题呢?

您必须为您的帖子分配唯一标识符:

<div class="container">
    <?php
        $news = array(
            \'post_type\' => \'post\',
            \'category_name\' => \'angebote\',
            \'order\' => \'ASC\',
            \'posts_per_page\' => -1
        );

        $wp_query = new WP_Query($news);
        while (have_posts()) :
            the_post();
    ?>
    <div class="main-columns">
        <div class="card-content" id="card-<?php echo esc_attr( get_the_ID() ); ?>">
            <div class="main-content liste"
                 style="background-image: url(<?php the_field(\'background-image\'); ?>
                         )">
                <h2><?php the_title(); ?></h2>
                <div class="row"><?php the_content(); ?></div>
                <div class="row content-button">
                    <a href="<?php the_permalink(); ?>">
                        <p>MEHR</p>
                    </a>
                </div>
            </div>
        </div>
    </div>
    <style>
        #card-<?php echo esc_attr( get_the_ID() ); ?> .main-content:hover {
            background: <?php echo get_field(\'background-farbe\' ); ?>;
            background-blend-mode: multiply;
        }
    </style>
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</div>
附:你不需要任何if 循环中的语句,因为在while循环之外不做任何事情;)

结束
WordPress循环中每个帖子的ACF背景色 - 小码农CODE - 行之有效找到问题解决它

WordPress循环中每个帖子的ACF背景色

时间:2018-10-31 作者:Dario B.

我在WordPress中有以下循环:

    <div class="container">
    <?php

    $news = array(
        \'post_type\' => \'post\',
        \'category_name\' => \'angebote\',
        \'order\' => \'ASC\',
        \'posts_per_page\' => -1
    );


    $wp_query = new WP_Query($news);
    if (have_posts()) : while (have_posts()) :
        the_post(); ?>

        <div class="main-columns">
            <div class="card-content">
                <div class="main-content liste"
                     style="background-image: url(<?php the_field(\'background-image\'); ?>
                             )">
                    <h2><?php the_title(); ?></h2>
                    <div class="row"><?php the_content(); ?></div>
                    <div class="row content-button">
                        <a href="<?php the_permalink(); ?>">
                            <p>MEHR</p>
                        </a>
                    </div>
                </div>
            </div>
        </div>
        <style>
            .card-container .main-content:hover {
                background: <?php echo get_field(\'background-farbe\' ); ?>;
                background-blend-mode: multiply;
            }
        </style>

    <?php var_dump($postid); ?>
    <?php endwhile; ?>

    <?php endif; ?>
    <?php wp_reset_query();
    ?>


</div>
可以看出,我有以下CSS,它所做的是用ACF为每个帖子添加一种颜色。

     <style>
        .card-container .main-content:hover {
            background: <?php the_field(\'background-farbe\' ); ?>;
            background-blend-mode: multiply;
        }
    </style>
问题是我只知道第一篇文章的颜色。有人能帮我解决这个问题吗?,为什么我看不到

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

好吧,你的问题在于你的CSS代码。

    .card-container .main-content:hover {
        background: <?php the_field(\'background-farbe\' ); ?>;
        background-blend-mode: multiply;
    }
它只使用类,因此它将应用于具有该类的每个元素。将相同的代码与不同的颜色相乘不会改变任何事情-只有一个这样的规则将处于活动状态。

那么如何解决这个问题呢?

您必须为您的帖子分配唯一标识符:

<div class="container">
    <?php
        $news = array(
            \'post_type\' => \'post\',
            \'category_name\' => \'angebote\',
            \'order\' => \'ASC\',
            \'posts_per_page\' => -1
        );

        $wp_query = new WP_Query($news);
        while (have_posts()) :
            the_post();
    ?>
    <div class="main-columns">
        <div class="card-content" id="card-<?php echo esc_attr( get_the_ID() ); ?>">
            <div class="main-content liste"
                 style="background-image: url(<?php the_field(\'background-image\'); ?>
                         )">
                <h2><?php the_title(); ?></h2>
                <div class="row"><?php the_content(); ?></div>
                <div class="row content-button">
                    <a href="<?php the_permalink(); ?>">
                        <p>MEHR</p>
                    </a>
                </div>
            </div>
        </div>
    </div>
    <style>
        #card-<?php echo esc_attr( get_the_ID() ); ?> .main-content:hover {
            background: <?php echo get_field(\'background-farbe\' ); ?>;
            background-blend-mode: multiply;
        }
    </style>
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
</div>
附:你不需要任何if 循环中的语句,因为在while循环之外不做任何事情;)

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请