【问题标题】:Conditional statements within WordPress loopWordPress 循环中的条件语句
【发布时间】:2015-02-10 11:07:35
【问题描述】:

尝试在我的 WP 循环中编写条件以根据帖子 ID 显示不同的链接。

<?php query_posts( array ( 'post__in' => array( 116, 102 ) ) ); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

 <!-- LOOP STUFF HERE -->

<?php if ( is_tag( 'new-graduates' ) )  {  ?>
<p class="jump-link"><a href="#">View our new graduates</a></p>
<?php } elseif ( is_tag('experienced-hires') ) { ?>
<p class="jump-link"><a href="#">View our Experienced hires</a></p>
<?php } ?>

<?php endwhile; ?>
<?php endif; ?>

条件只是被忽略,没有输出。

更新答案:

<?php query_posts( array ( 'post__in' => array( 116, 102 ) ) ); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

 <!-- LOOP STUFF HERE -->

<?php if ( has_tag( 'new-graduates' ) )  {  ?>
<p class="jump-link"><a href="#">View our new graduates</a></p>
<?php } elseif ( has_tag('experienced-hires') ) { ?>
<p class="jump-link"><a href="#">View our Experienced hires</a></p>
<?php } ?>

<?php endwhile; ?>
<?php endif; ?>

【问题讨论】:

  • 另外,你好像忘了问这个问题。
  • 其实wordpress循环是真实存在的。它在文档“The Loop”中被调用。这就是 wordpress 处理输出多个帖子等的方式。但是是的,使用 PHP 循环...
  • 问题是没有输出,我正在寻求帮助,而不是关于我的措辞的无用回复。
  • 好的。那么 ifs 语法看起来是正确的,所以它一定是你的 is_tag() 返回 false。
  • post__in 参数将只返回那两篇文章... is_tag 如果这是一个标签存档页面而不是如果帖子实际上属于该标签则返回。因此,如果您收到结果...... is_tag 可能不是您正在寻找的功能。 has_tag('TAGNAME') 可能会更好。

标签: php wordpress loops conditional-statements


【解决方案1】:

您的代码没有问题,这是因为 ifelseif 都失败了,这就是您没有输出的原因。

只需像这样添加一个else 块(只需添加它以显示您的代码就可以了),您将获得输出。

<?php if ( has_tag( 'new-graduates' ) )  {  ?>
<p class="jump-link"><a href="#">View our new graduates</a></p>
<?php } elseif ( has_tag('experienced-hires') ) { ?>
<p class="jump-link"><a href="#">View our Experienced hires</a></p>
<?php } else { ?>
<p class="jump-link">No graduates nor Experienced</p>
<?php }?>

【讨论】:

    猜你喜欢
    • 2011-12-17
    • 2017-03-10
    • 2011-10-23
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2020-11-21
    相关资源
    最近更新 更多