PHP If Else始终显示Else并打印变量


PHP If Else shows always ELSE and prints the variable

我有一个插件,可以让我获得自定义字段。我正在为一本杂志工作,有些作家有推特账号,有些则没有。

我想在每种情况下展示一个不同的盒子。

这是我的代码:

    <?php
    $twit = the_field('twitter'); 
    ?>
    <?php 
        if (!empty($twit)) { 
    ?>
                     <p> <?php the_field( 'autor' ); ?>  |  <a href="https://twitter.com/<?php echo rawurlencode ( the_field( 'twitter' )); ?>" class="twitter-follow-button" data-show-count="false" data-lang="es" data-dnt="true">Seguir a @<?php echo rawurlencode ( the_field( 'twitter' )); ?></a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>  |  <?php the_field( 'fotos' ); ?>  |</p>
    <?php } else { ?>
           <p>Nothing to see here</p>
    <?php } ?>

"这里什么都看不到"这段话只是为了测试,目的是从autor和fotos中获取信息,并创建一个不同的句子。

我对这段代码的问题是,在任何情况下,我都会得到Nothing to see here消息,如果twit字段存在,它就会被打印出来,经过反复尝试,它看起来就像是从我创建变量$twit时打印出来的。

您使用了错误的函数。

_field将回显该字段的内容,而不返回任何内容。如果希望它返回一个值,则需要使用get_field。

尝试:

$twit = get_field('twitter'); 

WordPress有很多名称相当相似的函数,值得花点时间阅读文档。通常,返回值的函数总是以get_开头。