我已经通过ACF选项页面创建了自定义字段,用户可以在其中输入其社交媒体个人资料链接。如果没有链接,它将不会在前端显示该图标。为此,我创建了一个名为“社交媒体”的小组,该小组将各个平台作为该小组中的字段。
我正在拔头发,试图将这些子字段值拉入主题页脚。它只是不显示任何内容,但是当我显示未嵌套在组中的值时,它将显示出来。
Footer.php↴
<?php
if( have_rows('social_media') ):
while( have_rows('social_media') ) : the_row();
?>
<li>
<a href="<?php the_sub_field('instagram'); ?>">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/icons/instagram.png" width="25px" height="25px" alt="Instagram Profile">
</a>
</li>
<?php endwhile; endif; ?>
ACF组↴
ACF选项页面↴
TIA寻求任何帮助。非常感谢。
答案 0 :(得分:2)
我假设这些字段位于ACF选项页面上,因此您必须在 have_rows 函数
中传递字符串 optionshave_rows('social_media', 'options')
检查此链接以获取更多信息https://www.advancedcustomfields.com/resources/options-page/
代码看起来像:
<?php
if( have_rows('social_media', 'option') ):
while( have_rows('social_media', 'option') ) : the_row();
?>
<li>
<a href="<?php the_sub_field('instagram'); ?>">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/icons/instagram.png" width="25px" height="25px" alt="Instagram Profile">
</a>
</li>
<?php endwhile; endif; ?>
请注意,子字段不需要选项字符串
当字段为空时隐藏Li的一种干净方法:
<?php while ( have_rows('social_media', 'option') ) : the_row(); ?>
<?php if (get_sub_field('instagram')): ?>
<li>
<a href="<?php the_sub_field('instagram'); ?>">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/icons/instagram.png" width="25px" height="25px" alt="Instagram Profile">
</a>
</li>
<?php endif; ?>
<?php endwhile; ?>
答案 1 :(得分:1)
如果您在选项页面中创建了此字段,则必须将option
参数与该字段一起传递。检查此链接https://www.advancedcustomfields.com/resources/options-page/
赞
<?php the_field('your-field-name', 'option'); ?>
所以尝试下面的代码。
<?php
if( have_rows('social_media', 'option') ):
while( have_rows('social_media', 'option') ) : the_row();
?>
<li>
<a href="<?php the_sub_field('instagram'); ?>">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/icons/instagram.png" width="25px" height="25px" alt="Instagram Profile">
</a>
</li>
<?php endwhile; endif; ?>
答案 2 :(得分:0)
当您从 ACF 选项页面回显字段时,只需传递 'option' 参数,如 the_field('acf_field_name', 'option')
在您的情况下,代码应该是:
<?php
if( have_rows('social_media', 'option') ):
while( have_rows('social_media', 'option') ) : the_row();
?>
<li>
<a href="<?php the_sub_field('instagram'); ?>">
<img src="<?php bloginfo('template_directory'); ?>/assets/img/icons/instagram.png" width="25px" height="25px" alt="Instagram Profile">
</a>
</li>
<?php endwhile; endif; ?>