我正在使用替换方法来制作[产品] ID |文本[/ product],它在我尝试在文本部分中创建新行之前一直很有效。然后它就会中断并且根本不会替换它。
功能: function productBox($ matches){
global $wpdb;
$test = explode("|",$matches[1]);
$loopProductID = $test[0];
$desc = $test[1];
//Variabels to get different info (out commented to save space)
$productHTML = '<div class="flow-item">
<div class="flow-product-image"><a href="'.$permalink.'" target="_blank"><img src="'.$thumburl.'" alt="'.$title.'" /></a></div>
<div class="flow-product-info">
<h3><a href="'.$permalink.'" target="_blank">'.$title.'</a> '.$argang.'</h3>
<div style="padding: 5px 0px 10px;">'.$desc.'</div>
<div class="flow-product-facts">Art.nr: '.$artnr.' - Pris: '.$prisinklmoms.' kr</div>
</div>
<div class="clear"></div>
</div>';
return $productHTML;
}
这就是我调用函数的方式:
$content = get_the_content();
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
$pattern = "/\[product\](.+?)\[\/product\]/";
$content = preg_replace_callback($pattern, 'productBox', $content);
任何可以帮助我的人如何使用文本部分中的新行?更可爱的是重制它,所以它的工作方式就像这样,也许更容易?:[product id =“ID”]文字和更多文字[/ product]
答案 0 :(得分:0)
只需添加多线修改器:
$pattern = "/\[product\](.+?)\[\/product\]/s";
// here __^