如何在 Wordpress 短代码中 return scandir 输出?

How to return scandir output inside Wordpress short code?

我制作了 WP 简码以列出特定目录中的所有文件,以便 return/echo worpress visual composer 选项卡简码 [tab title="TEST ME"]SCANDIRE OUTPUT[/tab]

之间的结果

这是我的函数代码:

/* Start of SC Scan files */
function xs_sc_specsheets() {
        $files = scandir('./documents/FD30/5_Hardware/Concort/Specsheets');
        sort($files); // this does the sorting
        foreach($files as $file){
                if($file == ".." || $file == ".") continue; //Skip parent directory links
                $xsresult = '<div class="wpb_wrapper"> <div class="column one-third"> <a class=" button  button_full_width button_size_2 button_js" href="/documents/FD30/5_Hardware/Concort/Specsheets/'.$file.'"><span class="button_label">'.$file.'</span></a> </div></div>' ;
        }
        return do_shortcode('[tab title="TEST ME"]' . $xsresult . '[/tab]');
}

if (function_exists('xs_sc_specsheets')) {
    add_shortcode( 'sc_specsheets', 'xs_sc_specsheets');
}
/* End of SC Scan files */

结果出现在我的 WP 内容中正确的选项卡位置,但有一个问题,即所有文件中只显示一个文件。

我的代码哪里出了问题?

在循环的每一步中,您都会重置最终的 return xsresult 变量。尝试使用“$xsresult.=”代替 "xsresult="。在这里

/* Start of SC Scan files */
function xs_sc_specsheets() {
        $files = scandir('./documents/FD30/5_Hardware/Concort/Specsheets');
        sort($files); // this does the sorting
        $xsresult='';
        foreach($files as $file){
                if($file == ".." || $file == ".") continue; //Skip parent directory links
                $xsresult.= '<div class="wpb_wrapper"> <div class="column one-third"> <a class=" button  button_full_width button_size_2 button_js" href="/documents/FD30/5_Hardware/Concort/Specsheets/'.$file.'"><span class="button_label">'.$file.'</span></a> </div></div>' ;
        }
        return do_shortcode('[tab title="TEST ME"]' . $xsresult . '[/tab]');
}

if (function_exists('xs_sc_specsheets')) {
    add_shortcode( 'sc_specsheets', 'xs_sc_specsheets');
}
/* End of SC Scan files */