从 ACF 转发器字段传递单个 PHP 值
Pass single PHP value from ACF Repeater Field
我有一个公司团队成员的页面。团队成员使用 ACF 转发器呈现,其中包含姓名、职务和传记字段。在页面上,我只想呈现他们的姓名和职位。如果您要单击某个团队成员,则会打开一个显示该团队成员传记的模式。
我有这个工作,但我的方法将传记字段添加到每个团队成员的 DOM,隐藏它,并在单击时将其传递到模态。我想知道是否可以将 Biography 字段传递到模式中,而不必最初在 DOM 中呈现文本并隐藏它?
下面是我当前的代码:
<!-- acf repeater -->
<?php if( have_rows('team_member') ): ?>
<?php while( have_rows('team_member') ): the_row();
$name = get_sub_field('name');
$job_title = get_sub_field('job_title');
$biography = get_sub_field('biography');
?>
<div class="team-member">
<div>
<?php echo $name ?>
</div>
<div>
<?php echo $job_title ?>
</div>
<div class="biography" style="display: none;">
<?php echo $biography ?>
</div>
</div>
<?php endwhile; ?>
<!-- modal -->
<div class="modal">
modal
<div class="modal-biography">
</div>
</div>
<?php endif; ?>
<!-- javascript -->
jQuery(function($) {
$('.team-member').on('click', function() {
var modalBiography = $(this).find('.biography').text();
$('.modal-biography').text(modalBiography);
})
});
如果您不需要显示简历 div
,我建议您将其放入 data-bio
属性中:
<div class="team-member" data-bio="<?php echo $biography; ?>">
<div><?php echo $name; ?></div>
<div><?php echo $job_title; ?></div>
</div>
然后稍微调整一下 js 来拉这个 data-bio
:
jQuery(function($) {
$('.team-member').on('click', function() {
var modalBiography = $(this).data('bio');
$('.modal-biography').text(modalBiography);
})
});
我有一个公司团队成员的页面。团队成员使用 ACF 转发器呈现,其中包含姓名、职务和传记字段。在页面上,我只想呈现他们的姓名和职位。如果您要单击某个团队成员,则会打开一个显示该团队成员传记的模式。
我有这个工作,但我的方法将传记字段添加到每个团队成员的 DOM,隐藏它,并在单击时将其传递到模态。我想知道是否可以将 Biography 字段传递到模式中,而不必最初在 DOM 中呈现文本并隐藏它?
下面是我当前的代码:
<!-- acf repeater -->
<?php if( have_rows('team_member') ): ?>
<?php while( have_rows('team_member') ): the_row();
$name = get_sub_field('name');
$job_title = get_sub_field('job_title');
$biography = get_sub_field('biography');
?>
<div class="team-member">
<div>
<?php echo $name ?>
</div>
<div>
<?php echo $job_title ?>
</div>
<div class="biography" style="display: none;">
<?php echo $biography ?>
</div>
</div>
<?php endwhile; ?>
<!-- modal -->
<div class="modal">
modal
<div class="modal-biography">
</div>
</div>
<?php endif; ?>
<!-- javascript -->
jQuery(function($) {
$('.team-member').on('click', function() {
var modalBiography = $(this).find('.biography').text();
$('.modal-biography').text(modalBiography);
})
});
如果您不需要显示简历 div
,我建议您将其放入 data-bio
属性中:
<div class="team-member" data-bio="<?php echo $biography; ?>">
<div><?php echo $name; ?></div>
<div><?php echo $job_title; ?></div>
</div>
然后稍微调整一下 js 来拉这个 data-bio
:
jQuery(function($) {
$('.team-member').on('click', function() {
var modalBiography = $(this).data('bio');
$('.modal-biography').text(modalBiography);
})
});