使用WooCommerce for Wordpress我创建了产品属性,我有一系列值,我使用;
作为分隔符将行拆分为<td>
,但有问题的是Wordpress不断向输出添加<p>
标签。
查看输出HTML似乎将第一个$applies[0]
与<p></p>
包装在一起,然后$applies[3]
包含<p></p>
。当我更希望从字符串中删除所有<p>
时。
我尝试了echo str_replace("<p>","",$apply);
和$applied = preg_replace('#<p[^>]*>(\s| ?)*</p>#', '', $apply);
,但仍然没有运气。
PHP
<tr class="<?php if ( ( $alt = $alt * -1 ) == 1 ) echo 'alt'; ?>">
<th><?php echo $woocommerce->attribute_label( $attribute['name'] ); ?></th>
<td><?php
if ( $attribute['is_taxonomy'] ) {
$values = woocommerce_get_product_terms( $product->id, $attribute['name'], 'names' );
echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
} else {
//Convert pipes to commas and display values
$values = array_map( 'trim', explode( '|', $attribute['value'] ) );
$apply = apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
$applies = explode(";", $apply);
echo $applies[0]."</td><td>";
if ($applies[2] != ''){
echo "<font style='text-decoration:line-through'>".$applies[1]."</font></td><td>";
} else {
echo $applies[1]."</td><td>";
}
echo $applies[2]."</td><td>";
$applies3 = str_replace(' ', '', $applies[3]);
$applies3 = str_replace('<p></p>', '', $applies3);
echo $applies[3];
}
?></td>
</tr>
输出HTML
<tr class="">
<th>Container</th>
<td><p>W2300 x D1030 x H940mm</p></td><td> £19953</td><td></td><td> in stock<p></p></td>
</tr>
答案 0 :(得分:2)
<强>更改强>
$apply = apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
要强>
$apply = apply_filters( 'woocommerce_attribute', wptexturize( implode( ', ', $values ) ), $attribute, $values );
从此行中删除wpautop()
,它会删除<p>
代码。