如何从自定义帖子类型链接到动态ACF按钮?

时间:2019-08-12 作者:Xero1

我有一个自定义的帖子类型存档,其中的文章在每篇帖子上都会调用一些ACF内容。我使用WP\\u Query将这些文章拉到归档页面上,每篇文章中都有一个按钮,单击该按钮将打开一个模式窗口,其中包含我在ACF转发器中为自定义帖子放置的图像。

如何通过该按钮调用模式窗口,而不调用其他模式窗口打开?

以下是我的存档页面代码:

<?php if ($the_query->have_posts()) { ?>
    <div id="post-list" class="columns property-grid">
        <?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <?php get_template_part( \'partials/content\' , \'property\' ); ?>
        <?php endwhile; // while has_post(); ?>

        <?php the_posts_pagination(); ?>
    </div>
<?php } else { ?>
        <?php } wp_reset_postdata(); ?>
<?php } endif { ?>
下面是我的每篇文章数据循环代码:

            <h2><?php the_title(); ?></h2>
            <?php echo get_field(\'property_address\');?>
            <a href="#" class="button gallery-button">View Images</a>
如有必要,以下是模式库弹出窗口的代码:

<div class="modal-gallery">
            <span class="close cursor" onclick="closeModal()">&times;</span>
            <div class="modal-content">
                <?php if(have_rows(\'property_gallery\')) : ?>
                    <?php while(have_rows(\'property_gallery\')) : the_row() ?>
                        <img class="prop-image" src="<?php echo get_sub_field(\'image\'); ?>" alt=""><br>

                        <!-- Next/previous controls -->
                        <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
                        <a class="next" onclick="plusSlides(1)">&#10095;</a>

                        <!-- Caption text -->
                        <div class="caption">
                            <p><?php echo get_sub_field(\'image_text\'); ?></p>
                        </div>
                    <?php endwhile ?>
                <?php endif; ?>
            </div>
        </div>
在我的JS文件中,我有一个名为openModal的函数,但我不知道如何调用特定文章的模式窗口。如果我按类调用,它将无法工作,因为每个按钮都将共享该类,并且如果没有为每篇文章设置ID,我无法指定ID。不完整代码如下:

function openModal(){
    $(\'.gallery-button\').click(function(){
        event.preventDefault();
        console.log(\'gallery-button pressed\');
    });
}

1 个回复
SO网友:Xero1

我决定重写代码,不再使用JS打开模式窗口,而是使用纯CSS。然后,我将POST ID附加到ID标记上,以便每个模式窗口都是唯一的。

下面标记的代码。Href与modal div上的ID匹配。

<a href="#open-modal-<?php echo $post->ID; ?>" class="button gallery-button">View Images</a>

相关推荐