【问题标题】:Return result of for loop with iteration使用迭代返回 for 循环的结果
【发布时间】:2019-09-16 13:17:06
【问题描述】:

好吧,我放弃了尝试在当前的“全部”视图中从强大的表单中获取字段,在这种情况下,我有一个字段(包含 SCALE01、SCALE02 等)可以解决问题,但我没有用户以将其连接到的形式。我最终放弃了。

所以在这里我有一些有用的东西,回声每次吐出四次答案(有四个条目来自可怕的显示),如下所示:

<a href="file1">file1<a>
<a href="file2">file2<a>
<a href="file3">file3<a>
<a href="file4">file4<a>

(重复4次)

文件链接是正确的!

我需要将该回显转换为返回,因此我将 wordpress 函数中的简码放在返回给我的第一个,然后是第二个,然后是第三个等在正确的位置,而不是在页面顶部。而且不是四次,只有一次:)

function scale_verification_certificate_func($atts) {
    $current_user = wp_get_current_user();
    $ffield = FrmProEntriesController::get_field_value_shortcode(array(
            'field_id' => 140, 
            'user_id' => 'current'));

    for ($i = 1; $i <= 10; $i++) {        
        foreach (glob("./clients/Sites/" . $ffield . "/SCALE0". $i . "/*SCALE_VERIFICATION_CERTIFICATE*", GLOB_NOSORT) as $filename) {
            echo "<a href='./.$filename.'>.$filename<img src='../document.png' /></a> <br>";
        }
    }
}
add_shortcode( 'scale-verification-certificate', 'scale_verification_certificate_func' );

任何帮助将不胜感激,如果我的问题写得不好,我很抱歉,这是我的第一个问题:)

编辑:我知道为什么它现在重复 4 次,因为它们是四个文件夹,以该名称开头,但无论如何我仍然会感谢其他方面的帮助!

【问题讨论】:

    标签: php wordpress foreach return echo


    【解决方案1】:

    既然你解决了 4x 的问题,为了让函数返回字符串,你可以在每个循环中累积结果,最后返回一个字符串。像这样:

    function scale_verification_certificate_func($atts) {
        $current_user = wp_get_current_user();
        $ffield = FrmProEntriesController::get_field_value_shortcode(array(
                'field_id' => 140,
                'user_id' => 'current'));
    
        $ret_string = "";  // initialize empty string
        for ($i = 1; $i <= 10; $i++) {
            foreach (glob("./clients/Sites/" . $ffield . "/SCALE0". $i . "/*SCALE_VERIFICATION_CERTIFICATE*", GLOB_NOSORT) as $filename) {
                // at each loop, append new segment
                $ret_string .= "<a href='./.$filename.'>.$filename<img src='../document.png' /></a> <br>";
            }
        }
        return $ret_string;  // now return the full string
    }
    

    【讨论】:

    • 感谢 Sal 的快速回答,但现在返回所有四个链接,尽管因为返回而在正确的位置!但我需要做的是一次只返回 1 个链接,但会进行迭代。所以link1会出现在函数的第一个实例上,然后是link2。我的行话很烂对不起! :)
    • 我认为你不能用一个简码实例来做到这一点。很可能,您必须多次输入简码,每次都带有一个参数,以便函数可以适当地生成代码。也许添加一个示例,说明您的 wordpress 页面应该是什么样子(即短代码)以及您希望 html 输出是什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2016-02-16
    • 1970-01-01
    • 2021-10-14
    • 2016-11-12
    • 2017-09-30
    • 2018-06-05
    相关资源
    最近更新 更多