IF或/AND语句高级定制字段

时间:2014-08-14 作者:NielsPilon

对于php的条件语句,我真的没有经验,不幸的是,高级自定义字段的文档并没有像我所知道的那样公平地涵盖这个主题。但无论如何,我要做的是显示一些标记和自定义字段,但仅当其中一个字段或两个字段都有数据时。

例如,我有一个页脚,可以显示电子邮件地址和/或网站链接。如果两个自定义字段均未填充数据,则不应显示页脚标记。如果有可用的电子邮件地址和/或网站链接,它应该显示页脚标记,当然还有字段的数据。

这就是我目前拥有的:

<footer>

<?php if( get_field(\'website\') ): ?>

<a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>

<?php endif; ?>     

<?php if( get_field(\'emailaddress\') ): ?>

<a href="mailto:<?php the_field(\'emailaddress\'); ?>"><?php the_field(\'emailaddress\'); ?</a>

<?php endif; ?>                                 

</footer>
但即使两个自定义字段都不可用,此代码也会显示页脚标记。如何使页脚标记仅在两个自定义字段中的一个都有值时显示?

如果试图使用| |语句执行此操作,但返回意外的T\\u BOOLEAN\\u或错误

<?php if( get_field(\'website\') ) || ( get_field(\'emailaddress\') ): ?>

// do this

<?php endif; >
如果有人知道这是否可行,如何做到这一点,或者能为我指出正确的方向,我将不胜感激。

2 个回复
最合适的回答,由SO网友:Josh Mountain 整理而成

我相信您的第二个想法是正确的,但是您的条件语句有一些语法错误。在PHP中,所有逻辑都应该封装在一组( ) 对于您的条件。尝试以下操作:

<?php
if ( get_field(\'website\') || get_field(\'emailaddress\') ) {
    ?>
    <footer>
        <?php
        if ( get_field(\'website\') ) {
            ?>
            <a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>
            <?php
        }
        if ( get_field(\'emailaddress\') ) {
            ?>
            <a href="mailto:<?php the_field( \'emailaddress\' ); ?>"><?php the_field( \'emailaddress\' ); ?></a>
            <?php
        }
        ?>
    </footer>
    <?php
}

SO网友:cfx

如果可能的话,我更喜欢将我的PHP内联,以避免分散其开始或结束标记,并可能遗漏一个。这更接近OP最初的尝试,imo读得更清晰:

<?php if(get_field(\'website\') || get_field(\'emailaddress\')) : ?>
  <footer>
    <?php if(get_field(\'website\')) : ?>
      <a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>
    <?php endif; ?>
    <?php if(get_field(\'emailaddress\')) : ?>
      <a href="mailto:<?php the_field(\'emailaddress\'); ?>"><?php the_field(\'emailaddress\'); ?></a>
    <?php endif; ?>
  </footer>
<?php endif; ?>

结束

相关推荐

Url中的wp-login.php与符号结果为404

我有一个问题,如果wp登录,wordpress站点将抛出404。php后面附加了一个符号和(例如,session expired参数)。我更改了主题,禁用了所有插件,重命名了。htaccess访问。htaccess1和我还有404。看起来像是wp登录。php未链接“&;”在它之后,例如“wp login&;whatever=blah”。如果“redirect\\u to”中有冒号,例如“redirect\\u to”,我还有另一个问题=http://blah.com/“这也会导致404。如果删

IF或/AND语句高级定制字段 - 小码农CODE - 行之有效找到问题解决它

IF或/AND语句高级定制字段

时间:2014-08-14 作者:NielsPilon

对于php的条件语句,我真的没有经验,不幸的是,高级自定义字段的文档并没有像我所知道的那样公平地涵盖这个主题。但无论如何,我要做的是显示一些标记和自定义字段,但仅当其中一个字段或两个字段都有数据时。

例如,我有一个页脚,可以显示电子邮件地址和/或网站链接。如果两个自定义字段均未填充数据,则不应显示页脚标记。如果有可用的电子邮件地址和/或网站链接,它应该显示页脚标记,当然还有字段的数据。

这就是我目前拥有的:

<footer>

<?php if( get_field(\'website\') ): ?>

<a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>

<?php endif; ?>     

<?php if( get_field(\'emailaddress\') ): ?>

<a href="mailto:<?php the_field(\'emailaddress\'); ?>"><?php the_field(\'emailaddress\'); ?</a>

<?php endif; ?>                                 

</footer>
但即使两个自定义字段都不可用,此代码也会显示页脚标记。如何使页脚标记仅在两个自定义字段中的一个都有值时显示?

如果试图使用| |语句执行此操作,但返回意外的T\\u BOOLEAN\\u或错误

<?php if( get_field(\'website\') ) || ( get_field(\'emailaddress\') ): ?>

// do this

<?php endif; >
如果有人知道这是否可行,如何做到这一点,或者能为我指出正确的方向,我将不胜感激。

2 个回复
最合适的回答,由SO网友:Josh Mountain 整理而成

我相信您的第二个想法是正确的,但是您的条件语句有一些语法错误。在PHP中,所有逻辑都应该封装在一组( ) 对于您的条件。尝试以下操作:

<?php
if ( get_field(\'website\') || get_field(\'emailaddress\') ) {
    ?>
    <footer>
        <?php
        if ( get_field(\'website\') ) {
            ?>
            <a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>
            <?php
        }
        if ( get_field(\'emailaddress\') ) {
            ?>
            <a href="mailto:<?php the_field( \'emailaddress\' ); ?>"><?php the_field( \'emailaddress\' ); ?></a>
            <?php
        }
        ?>
    </footer>
    <?php
}

SO网友:cfx

如果可能的话,我更喜欢将我的PHP内联,以避免分散其开始或结束标记,并可能遗漏一个。这更接近OP最初的尝试,imo读得更清晰:

<?php if(get_field(\'website\') || get_field(\'emailaddress\')) : ?>
  <footer>
    <?php if(get_field(\'website\')) : ?>
      <a href="<?php the_field(\'website\'); ?>"><?php the_field(\'website\'); ?></a>
    <?php endif; ?>
    <?php if(get_field(\'emailaddress\')) : ?>
      <a href="mailto:<?php the_field(\'emailaddress\'); ?>"><?php the_field(\'emailaddress\'); ?></a>
    <?php endif; ?>
  </footer>
<?php endif; ?>

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请