如何为指定WooCommerce代码片段添加<th>和<td>标签?
调整WooCommerce分类输出为和标签结构
没问题,我来帮你修改这段代码,让它输出符合你要求的<th>和<td>标签结构,和你提供的示例格式一致。
问题分析
原代码里wc_get_product_category_list函数把分类标题(Category/Categories)和分类列表都整合在了<span class="posted_in">容器里,没法直接拆分到<th>和<td>标签中,所以我们需要把标题和分类内容分开处理。
修改后的代码(推荐方案)
// 获取产品的分类ID数组和数量 $category_ids = $product->get_category_ids(); $category_count = count($category_ids); // 输出<th>包裹的分类标题 echo '<th>' . _n( 'Category:', 'Categories:', $category_count, 'woocommerce' ) . '</th>'; // 输出<td>包裹的分类列表(移除原函数中的标题相关参数) echo '<td>' . wc_get_product_category_list( $product->get_id(), '<span class="meta-sep">, </span> ', '', // 移除原有的开头<span> '' // 移除原有的结尾<span> ) . '</td>';
代码说明
- 先单独获取分类数量,用
_n()函数生成单复数对应的标题,包裹在<th>标签里; - 调用
wc_get_product_category_list时,去掉原函数中负责包裹标题的<span class="posted_in">相关参数,只保留分类列表和分隔符,然后把整个分类列表包裹在<td>标签中; - 最终输出的结构会和你给的示例完全一致:
<th>Category:</th> <td>分类1, 分类2</td>
备选方案(字符串替换方式)
如果你希望尽量保留原函数的参数结构,也可以用字符串替换的方式修改输出:
// 获取原函数的完整输出 $category_output = wc_get_product_category_list( $product->get_id(), '<span class="meta-sep">, </span> ', '<span class="posted_in">', '</span>' ); // 替换原有的<span>标签为<th>和<td> $category_output = str_replace('<span class="posted_in">', '<th>', $category_output); $category_output = str_replace('</span>', '</th><td>', $category_output); // 补全闭合的<td>标签 $category_output .= '</td>'; // 输出最终结果 echo $category_output;
内容的提问来源于stack exchange,提问作者Duc Phuli
相关产品推荐
相关产品推荐

