在我公司最初由其他人設置的Wordpress網站上工作。 Here's a product page在這裏你可以看到我所參考的東西...當產品有多個類別時,獲取主要父級產品類別
「皮膚狀況」,「皮膚類型」和「養生」部分是爲我們創建的。我現在試圖複製行爲來創建「As Seen In」部分。他們通過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;
」?
小的視覺類別,如果有幫助:
謝謝!
非常感謝您的幫助和及時回覆! 我試圖實現這一點,但不幸的是,當我嘗試清理文件中的所有無關空格時,我的Wordpress正在向我投擲死亡的白色屏幕。 [這是我完整的函數.php](https://codeshare.io/a3y9Mg),但我得到WSOD,儘管沒有語法錯誤,我可以看到。 – Olivia
@Olivia我已經測試並更新了代碼......在開頭處只有一點遺漏:'global $ post;'。 – LoicTheAztec
再次感謝您的幫助!我現在無法在週末訪問服務器。更新了代碼,謝天謝地沒有白屏,但它仍然沒有工作。每個部分都會出現,但圖標不會顯示,[如您在此處所見](http://topixpharm.com/product/sheer-physical-sunscreen-cream-spf-50/)。 [更新的功能。php文件在這裏。](https://codeshare.io/a3y9Mg) – Olivia