php - 确定产品属于什么类别并显示图像。- 如何清理这个 PHP 代码?
问题描述
对于我的 Woocommerce 商店,我在产品页面中插入了一些 PHP 代码来显示图像。下面的代码有效,但维护性很强且很长。我现在有 83 个用于 elseif 的……我知道这可以做得更好、更清洁、更快。
可能使用 foreach 左右。问题是,图像的名称还包含产品名称,它会有所不同。所以,基本上,1)我需要确定类别名称(已解决),2)产品名称和 3)调用一个名为“productname-categoriename.png”的图像
有人可以帮我重现这段代码,但更聪明吗?
<?php
if ( is_product() && has_term( 'category-name', 'product_cat' ) ) {
echo '<div class="logo"><img src="https://www.website.com/logo/productname-categoryname.png"></div>';
}
elseif ( is_product() && has_term( 'category-name-2', 'product_cat' ) ) {
echo '<div class="logo"><img src="https://www.website.com/logo/productname-categoryname-2.png"></div>';
}
elseif ( is_product() && has_term( 'category-name-83', 'product_cat' ) ) {
echo '<div class="logo"><img src="https://www.website.com/logo/productname-category-name-83.png"></div>';
} else {
echo "";
}
?>
解决方案
你会得到很多不同的答案,但这里有一种方法:
<?php
if (is_product()) {
$productName = $product->get_name();
// however you get the category name
$categoryName = '';
$iconName = "{$productName}-{$categoryName}.png";
$output = '<div class="logo"><img src="https://www.website.com/logo/' . $iconName . '"></div>'
}
echo $output ?? '';
您将需要遵守已应用于 png 文件的命名约定。
推荐阅读
- python - 如果数据中存在与某些条件匹配的另一行,则从 pandas DataFrame 中查找行
- android - Android Management API 的有效身份验证凭据
- ios - SSLError:[Errno 1] _ssl.c:510:错误:1409442E:SSL 例程:SSL3_READ_BYTES:tlsv1 警报协议版本
- python - AttributeError:“切片”对象没有属性“标志”错误
- angular - angular2-multiselect-dropdown 在下拉列表中显示 id 和 itemName
- sql-server - 始终加密:在证书存储中找不到带有指纹的证书
- php - Doctrine - 事件监听器(preUpdate)不更新相关实体
- sql-server - SQL Server 函数运行速度很慢
- python - 在哪些情况下可以在 python 中使用缩进?
- deep-learning - 交叉验证中的数据增强