Я пытаюсь построить галерею с помощью fancybox на WordPress сайте. Эти элементы галереи являются повторителями расширенных настраиваемых полей (ACFS).
Проблема в том, что клиент хочет, чтобы только некоторые элементы галереи были ссылками, так как некоторые будут просто цветными прямоугольниками с текстом, поэтому не должны быть ссылками и не должны открываться в fancybox.
Как вы можете видеть из кода ниже, я вызываю все строки в повторителе и помещаю их в свои собственные элементы div с помощью hrefs.
Как можно определить, является ли строка изображением или текстовым полем, и соответственно добавить href?
<?php
if( have_rows('p3projectsres') ):
while ( have_rows('p3projectsres') ) : the_row(); ?>
<div class="s3block">
<p> <a href="<?php the_sub_field('p3projectreshires'); ?>" rel="lightbox" title="<?php the_sub_field('p3projectresdescription'); ?>">
<!-- <div class="locationscript"><?php the_sub_field('p3projectreslocation'); ?></div> -->
<div class="s3blockblurb">
<div class="scribe7">
<?php the_sub_field('p3projectresblurb'); ?>
</div>
<div class="s3blockfaded"><?php the_sub_field('p3projectreslocation'); ?></div>
</div>
<img src="<?php the_sub_field('p3projectrespreview'); ?>" />
</a></p>
</div>
<?php endwhile;
else : endif;
?>
Смотрите проблему здесь, под «нашей работой»: www.entirecreative.com/stone
Ты можешь использовать get_sub_field()
чтобы получить значение для поля (в отличие от его эхо the_sub_field()
). Если значение не установлено, оно вернется false
так что это может быть использовано в if
заявление только для вывода A
открывать / закрывать теги, если в строке репитера установлено подполе «p3projectreshires». Вы также можете условно включить изображение предварительного просмотра, установив флажок «p3projectreshires».
<?php
if( have_rows('p3projectsres') ):
while ( have_rows('p3projectsres') ) : the_row(); ?>
<div class="s3block"><p>
<!--
check to see if there is a value for "p3projectreshires"and if there is open the A tag
-->
<?php if ( get_sub_field('p3projectreshires') ) : ?>
<a href="<?php the_sub_field('p3projectreshires'); ?>" rel="lightbox" title="<?php the_sub_field('p3projectresdescription'); ?>">
<?php endif; ?>
<div class="s3blockblurb">
<div class="scribe7">
<?php the_sub_field('p3projectresblurb'); ?>
</div>
<div class="s3blockfaded"><?php the_sub_field('p3projectreslocation'); ?></div>
</div>
<!-- Only include the preview image if it is set -->
<?php if ( get_sub_field('p3projectrespreview') ) : ?>
<img src="<?php the_sub_field('p3projectrespreview'); ?>" />
<?php endif; ?>
<!--
check to see if there is a value for "p3projectreshires"and if there is close the A tag
-->
<?php if ( get_sub_field('p3projectreshires') ) : ?>
</a>
<?php endif; ?>
</p></div>
<?php endwhile;
else : endif;
?>
Других решений пока нет …