我问了这个问题,我在帮助下很快得到了解决: Reverse the way of function output
然而,当我按照建议做的时候,它打破了javascript工作的方式。
如果我这样做
$output = '<a class="w-portfolio-item-anchor" href="javascript:void(0);" data-id="'.$post->ID.'">' . $output;
而不是:
$output .= '<a class="w-portfolio-item-anchor" href="javascript:void(0);" data-id="'.$post->ID.'">'
javascript停止工作。但是产出应该是逆转的。如何解决这个问题,但仍然有输出反转?
答案 0 :(得分:0)
在你的例子中
$output = '<a class="w-portfolio-item-anchor" href="javascript:void(0);" data-id="'.$post->ID.'">' . $output;
会创建此$output
:
<a class="w-portfolio-item-anchor" href="javascript:void(0);" data-id="'.$post->ID.'"><div class="w-portfolio">
<div class="w-portfolio-h">
<div class="w-portfolio-list">
<div class="w-portfolio-list-h">
提示:在代码中使用var_dump($output)
或echo $ouput
,以便了解 $ output 变量中存储的内容。与您当前的代码一样,您将拥有混乱的HTML结构。
修改强>
您正在第35行的循环外部初始化$output
变量。我现在正在编写一些伪代码,代码应该如何工作:
//line 34
$output = '<div class="w-portfolio">
<div class="w-portfolio-h">
<div class="w-portfolio-list">
<div class="w-portfolio-list-h">';
foreach( $posts as $post ) { // Note: This is the while loop in your example
$output .= '<a href="javascript:void(0);" data-id="'.$post->ID.'">'; //notice the .= which appends the string to variable declared on line 35
}
$output .= '</div>
</div>
</div>
</div>';
return $output;
不要在此处使用$output .= $output
或$output = 'bla bla' . $ouput
。这会破坏您想用代码创建的HTML结构。请注意,您的$ output变量以$output = '<div class="w-portfolio">
开头。
请在代码中第105行删除 . $output;
</div>'. $output;
。
试试这个PasteOfCode