1

如果这在其他地方得到回答,我深表歉意,但我在这里遇到了这个 ACF 代码的问题:http: //goo.gl/9onrFN我希望客户能够向艺术家添加投资组合站点链接(如果适用)页面和链接会显示“查看艺术家的网站”,并且该链接会将用户带到新窗口中的艺术家网站。除非在帖子的自定义字段中输入了网址,否则我将如何不让此文本不可见?这是代码:

<p><?php the_field('contact_phone_number'); ?><br />
                    or <a href="mailto:<?php the_field('contact_email'); ?>"><?php the_field('contact_email'); ?></a><br />
                    View <a href="<?php the_field('artist_website'); ?>" target="_blank">Artist's Website</a></p>

提前致谢!

4

1 回答 1

2

您可以检查是否设置了 ACF 字段:

if(get_field('artist_website')) {
    the_field('artist_website');
}

使用 the_field 将简单地回显您的字段内容,而 get_field 将返回更有用的值。例如,您可以将上面的代码编写为:

注意:get_field 简单返回字段的值,如果要检查是否输入了有效的 url,则必须使用正则表达式。

下面是带有执行空字段检查的 if 语句的代码:

<p>
<?php the_field('contact_phone_number'); ?><br />
or <a href="mailto:<?php the_field('contact_email'); ?>"><?php the_field('contact_email'); ?></a>
<?php if(get_field('artist_website')) { ?>
    <br />View <a href="<?php the_field('artist_website'); ?>" target="_blank">Artist's Website</a>

通过预先设置变量并在回显中包含 HTML,您可能会发现您的代码更易于阅读:

<p>
<?php
$contact_phone_number = get_field('contact_phone_number');
$contact_email = get_field('contact_email');
$artist_website = get_field('artist_website');

echo "{$contact_phone_number}<br />";
echo "or <a href='mailto:{$contact_email}'>{$contact_email}</a><br/ >;
if($artist_website) {
     echo "View <a href='{$artist_website}' target='_blank'>Artist's website</a>";
}
?>
</p>
于 2013-07-28T23:21:36.663 回答