Wordpress中的高级自定义字段 - “if”语句问题

时间:2014-02-12 08:58:50

标签: php wordpress advanced-custom-fields

我希望有人可以帮助我。我在使用Wordpress的高级自定义字段插件的if语句时遇到问题。我有三个选项供用户选择,所有三个都可以选择,但如果他们愿意,他们也可以选择一个。

我遇到的问题是我编写的代码显示了所有HTML标记,甚至是空标记。这导致样式问题。我希望能够显示已填充的HTML。我在ACF论坛上尝试过这些解决方案,但无济于事。

链接:http://www.advancedcustomfields.com/resources/getting-started/code-examples/

这是我当时得到的快速(新手!)代码:

<a href="<?php the_sub_field('link'); ?>"><?php the_sub_field('link'); ?></a>
<a href="<?php the_sub_field('doc'); ?>"><?php the_sub_field('doc'); ?></a>
<p><?php the_sub_field('cap'); ?></p>

我看了ACF论坛并尝试了这个,但它打破了主题:

<?php if(the_sub_field('link')) {
    echo '<a href="' . the_sub_field('link') . '">' . the_sub_field('link') . '</a>';
} ?>

<?php if(the_sub_field('doc')) {
    echo '<a href="' . the_sub_field('doc') . '">' . the_sub_field('doc') . '</a>';
} ?>

 <?php if(the_sub_field('cap')) {
     echo '<p>' . the_sub_field('cap') . '</p>';
 } ?>

我正在寻找一些帮助来完成这项工作。我不认为我离正确的答案太远了,但是我有点像一个超出标准前端的东西的新手,任何想法都会非常感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用get_sub_field();

<?php if(get_sub_field('link')) {
    echo '<a href="' . the_sub_field('link') . '">' . the_sub_field('link') . '</a>';
} ?>

<?php if(get_sub_field('doc')) {
    echo '<a href="' . the_sub_field('doc') . '">' . the_sub_field('doc') . '</a>';
} ?>

 <?php if(get_sub_field('cap')) {
     echo '<p>' . the_sub_field('cap') . '</p>';
 } ?>

当循环遍历其中一个字段时,此函数返回当前行的子字段。

答案 1 :(得分:1)

就像Dk-Macadamia所说,尝试在循环中使用get_sub_field()而不是the_sub_field() 差异为get_sub_field()将值作为字符串返回,the_sub_field()打印数据

此外get_sub_field()仅在转发器/流体场类型下工作,否则无法工作, 如果它不是转发器/流体场的子字段,只需尝试get_field()