【问题标题】:Advanced Custom Fields foreach looping in opposite direction to WordPress与 WordPress 反向循环的高级自定义字段
【发布时间】:2016-09-23 02:21:20
【问题描述】:

我一直在为此绞尽脑汁。

背景:

以下代码有效,并且正在获取相关 WordPress 帖子的正确分类术语信息。

问题:

ACF 正在按照最新到最旧的顺序输出术语。 WordPress 的 $game->name;正在按从旧到新的顺序输出术语。

这基本上意味着工具提示与 get_field('icon'); 中的图像不匹配

$games = get_the_terms(get_the_ID(), 'games')

foreach ($games as $game) {
    $term = array_pop($games);
    if ( get_field('icon', $term) ) {
        echo '<img src="' . get_field('icon', $term ) . '" alt="' . $game->name . '" data-placement="bottom" data-toggle="tooltip" title="' . $game->name . '" />';
    }
} 

到目前为止我已经尝试过:

  • 将 $games 更新为 $games = get_the_terms(get_the_ID(), 'games', array( 'order' =&gt; 'DESC') )(无影响)。

  • 使用 array_reverse 反转 $games 的数组顺序。

我们将不胜感激。

【问题讨论】:

    标签: php wordpress advanced-custom-fields


    【解决方案1】:

    您似乎故意在您的代码中使用array_pop??

    只需使用 foreach 循环中的 $game 变量:

    $games = get_the_terms(get_the_ID(), 'games')
    
    foreach ($games as $game) {
        //$term = array_pop($games);
        if ( get_field('icon', $game) ) {
            echo '<img src="' . get_field('icon', $game ) . '" alt="' . $game->name . '" data-placement="bottom" data-toggle="tooltip" title="' . $game->name . '" />';
        }
    }
    

    【讨论】:

    • 不幸的是,array_pop() 需要让这个工作,我刚刚删除它并且在循环中没有返回任何内容。 ACF 文档也在他们的示例中使用了这个 - advancedcustomfields.com/resources/…
    • @Nick 不,你一定是做错了什么。 array_pop 只是从数组中删除最后一个元素并返回它:php.net/manual/en/function.array-pop.php 您是否确保在整个 foreach 块中将 $term 更改为 $game,如上所述?特别是在 if 子句中
    • 您说的完全正确,感谢您指出错误。一切正常,非常感谢您的建议。
    • @Nick 没问题,很高兴能帮到你
    猜你喜欢
    • 2016-08-12
    • 2016-06-08
    • 2012-08-10
    • 1970-01-01
    • 2017-01-14
    • 2017-08-28
    • 2015-01-21
    • 2017-05-01
    • 2013-11-25
    相关资源
    最近更新 更多