【发布时间】:2017-08-09 08:08:41
【问题描述】:
在我公司的 Wordpress 网站上工作,该网站最初是由其他人建立的。 Here's a product page 在那里你可以看到我引用的内容...
为我们创建了“皮肤状况”、“皮肤类型”和“方案”部分。我现在正在尝试复制该行为以创建“所见”部分。它们通过 WooCommerce 类别工作 - 在产品页面上,我们有大量类别列表,我们检查对应的类别,然后显示图标。
最终结果在functions.php和style.css中完成。使用的PHP如下:
add_action('woocommerce_product_meta_end', 'skin_condition');
function skin_condition() {
echo '<div class="skin-icons">';
echo '<div class="skin-condition-title"><h4>Skin Condition</h4></div>';
if ( is_product() ){
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ){
$category_name = $term->name;
$category_thumbnail = get_woocommerce_term_meta($term->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($category_thumbnail);
echo '<div class="skin-condition">';
echo '<img class="'.$term->slug.'" title="'.$category_name.'" src="'.$image.'">';
echo '</div>';
}
}
echo '</div>';
}
因此,这最终会提取应用于产品的所有类别的缩略图。然后用 CSS 来隐藏每个部分我们不想要的东西:
.skin-condition img.glycolic, .skin-condition img.citrix, .skin-condition img.replenix,
.skin-condition img.glycolix, .skin-condition img.srs, .skin-condition img.solvere,
.skin-condition img.resurfix, .skin-condition img.rebrightalyze, .skin-condition img.benzaderm,
.skin-condition img.acne-regimen, .skin-condition img.cleansetone, .skin-condition img.hydrate,
.skin-condition img.prevent, .skin-condition img.protect, .skin-condition img.repair,
.skin-condition img.antioxidants, .skin-condition img.body-care, .skin-condition img.cleansers,
.skin-condition img.exfoliators, .skin-condition img.eye, .skin-condition img.glycolic,
.skin-condition img.kits-systems, .skin-condition img.masques-peels, .skin-condition img.masques-peels-specialty,
.skin-condition img.moisturizers, .skin-condition img.retinols, .skin-condition img.sunscreens,
.skin-condition img.toners, .skin-condition img.new, .skin-condition img.dry,
.skin-condition img.normal, .skin-condition img.oily, .skin-condition img.sensitive,
.skin-condition img.dermatopix, .skin-condition .gly-sal, .skin-condition .elite,
.skin-condition .peels-specialty, .skin-condition .glycolix-elite, .skin-condition .best-sellers,
.skin-condition .replenix-acne-solutions, .skin-condition .press-mentions {
display: none;
}
所以我认为必须有一种方法来避免这种 CSS。
我可以在 PHP 的每个部分中只调用一个父类别吗?而不是全部加载并转到“display: none;”?
如果有帮助的话,类别的小视觉:
谢谢!
【问题讨论】:
标签: php wordpress woocommerce categories product