5

这是我需要做的:

  • 针对具有 css 的主商店页面(我创建的特定自定义类,如下所述)。

这是我到目前为止所做和尝试的:

  • archive-product.php我的子主题中有一个覆盖模板。
  • 在这个覆盖模板中,我custom-shop-class在产品循环开始之前添加了一个带有自定义类的 div,因为我想专门针对循环产品。
  • 我尝试使用类定位,page-id-4因为如果我将鼠标悬停在 wp-admin 中的“商店”页面上,它给了我http://.../post.php?post=4&action=edit

我遇到的问题如下:

  • 根据我的发现,archive-product.php在其他各种商店页面中使用了相同的模板,而不仅仅是在主“商店”页面中(如果我错了,请纠正我),所以当我custom-shop-class使用 CSS 定位我时,它会影响所有其他商店页面都使用相同的模板文件,但不能。
  • 商店页面没有专门的唯一标识符或类,类似于page-id-??正文标签中的类(如在通常的 WP 页面中)。

关于最佳方法/解决方案的任何建议?

在此先感谢马里奥。

4

3 回答 3

6

设置一个条件语句来检查主要商店页面,然后在该语句评估为真时回显有问题的 div。

主商店页面的 WooCommerce 条件标签:

is_shop()

例子

if (is_shop()) {
echo "<div class='custom-shop-class'></div>";
} else {
echo "<div class='custom-product-category-class'></div>";
}

或者:

<?php if (is_shop()):?>
<div class="custom-shop-class"></div>
<?php else: ?>
<div class="custom-product-category-class"></div>
<?php endif;?>

条件标签 | WooThemes 文档

于 2016-06-01T20:53:27.523 回答
3

body_class使用带有条件的过滤器,is_shop您可以定位主要的 WooCommerce 商店页面。

add_filter( 'body_class', 'woo_shop_class' );
// Add WooCommerce Shop Page CSS Class
function woo_shop_class( $classes ) {
  if ( is_shop() )  // Set conditional
    $classes[] = 'woo-shop'; // Add Class
return $classes;
}

代码在您的主题functions.php文件中。

于 2021-02-04T01:56:13.373 回答
0

为了构建此处提供的答案,我该如何进一步根据活动的 WPML 语言向商店页面添加唯一标识符?(我基本上只是在尝试减少德语版商店页面上的字体大小 - 事实证明这很难做到)

于 2017-07-18T08:29:54.013 回答