Вопрос или проблема
Я хочу установить пользовательский стиль для отображения цен на распродаже на странице архива WooCommerce. Я мог бы сделать это в файле single-product.php, но на странице архива это просто wc_get_template_part( ‘content’, ‘product’ ); и нет ссылки, чтобы найти его.
Как я могу найти HTML-шаблон и установить пользовательский класс CSS для товаров на распродаже на странице архива?
В вашей теме должны быть несколько файлов шаблонов, названия которых начинаются с “content”, за которым следует дефис, уникальное имя и .php, например, “content-xxx.php”. Иногда они могут находиться в подпапке, называемой чем-то вроде “template parts”.
Именно там вы найдете файл content-product.php и в нем цикл, который можете изменить, чтобы добавить ваше пользовательское объявление стиля.
Однако я настоятельно рекомендую убедиться, что вы изменяете дочернюю тему, которую вы создали, в противном случае обновления темы перезапишут ваши правки.
В качестве альтернативы, вы можете добавить некоторый код в functions.php вашей (дочерней) темы, или еще лучше, в пользовательский плагин, который находится в вашей папке плагинов, а не в папке темы (чтобы сделать его независимым от темы), чтобы добавить классы.
Вы можете сделать это с помощью фильтров, я делал это, чтобы добавить классы к классу Body и Post, но вы можете сделать это более детализированным, если нужно. Смотрите эту страницу для некоторых примеров:
https://developer.wordpress.org/reference/functions/body_class/
Прокрутите вниз, чтобы увидеть примеры, вы могли бы легко нацелиться на ваш шаблон.
Вы можете настроить HTML для товаров на распродаже на странице архива WooCommerce, переопределив файл content-product.php
, который вызывается с помощью wc_get_template_part( 'content', 'product' )
. Вот как вы можете это сделать:
Шаги:
-
Найдите файл шаблона
Функцияwc_get_template_part( 'content', 'product' )
загружает файл шаблонаcontent-product.php
. Этот файл находится по следующему пути:wp-content/plugins/woocommerce/templates/content-product.php
-
Скопируйте шаблон в вашу тему
Чтобы безопасно внести изменения, скопируйте файлcontent-product.php
в вашу тему или дочернюю тему. Поместите его в этот каталог:wp-content/themes/your-theme/woocommerce/content-product.php
-
Добавьте пользовательский CSS-класс для товаров на распродаже
Откройте файлcontent-product.php
в вашей теме. Чтобы добавить пользовательский класс для товаров на распродаже, оберните код отображения цены в условную проверку. Найдите следующую строку, которая отображает цену товара (или что-то подобное):<?php echo $product->get_price_html(); ?>
Замените ее на:
<?php if ( $product->is_on_sale() ) : ?> <span class="custom-sale-price"><?php echo $product->get_price_html(); ?></span> <?php else : ?> <?php echo $product->get_price_html(); ?> <?php endif; ?>
-
Стилизация пользовательского класса
Добавьте ваш пользовательский CSS для цен на распродаже вstyle.css
вашей темы или в пользовательский CSS файл. Например:.custom-sale-price { color: red; font-weight: bold; }
-
Проверьте ваши изменения
Очистите кэш и протестируйте страницу архива, чтобы убедиться, что пользовательский стиль применяется только к товарам на распродаже.
Дополнительно
Если вы не хотите напрямую редактировать файлы шаблонов, вы также можете использовать хуки WooCommerce, такие как woocommerce_before_shop_loop_item_title
, чтобы динамически добавить ваш пользовательский класс. Но для вашего конкретного случая наиболее простым подходом будет редактирование шаблона content-product.php
.
Дайте знать, если вам нужно больше помощи!
Ответ или решение
Чтобы установить собственный стиль для отображения цен на распродажу на странице архива в WooCommerce, вам необходимо изменить шаблон, используемый для отображения продуктов. В данном ответе мы рассмотрим, как правильно произвести изменения, чтобы гарантировать, что они не будут потеряны при обновлениях темы, и как добавлять кастомные CSS классы для продуктов на распродаже.
Шаги для изменения шаблона wc_get_template_part
-
Найдите шаблонный файл
Когда вы используете функциюwc_get_template_part( 'content', 'product' )
, она загружает файл шаблонаcontent-product.php
, который обычно находится в следующем пути:wp-content/plugins/woocommerce/templates/content-product.php
-
Скопируйте шаблон в свою тему
Чтобы безопасно изменить его, вам следует скопировать файлcontent-product.php
в вашу тему или дочернюю тему (child theme). Разместите его в следующем каталоге:wp-content/themes/your-theme/woocommerce/content-product.php
Если директории
woocommerce
не существует в вашей теме, создайте ее. -
Добавьте пользовательский CSS класс для продуктов на распродаже
Откройте файлcontent-product.php
в вашей теме. Вам нужно найти строку, отвечающую за отображение цены продукта. Обычно это выглядит так:<?php echo $product->get_price_html(); ?>
Замените эту строку следующим кодом:
<?php if ( $product->is_on_sale() ) : ?> <span class="custom-sale-price"><?php echo $product->get_price_html(); ?></span> <?php else : ?> <?php echo $product->get_price_html(); ?> <?php endif; ?>
-
Стилизация кастомного класса
После добавления кастомного класса вам необходимо добавить стиль для классов с типомcustom-sale-price
в файлstyle.css
вашей темы или в отдельный файл стилей. Например, вы можете использовать следующий CSS:.custom-sale-price { color: red; font-weight: bold; }
-
Протестируйте ваши изменения
После внесения изменений очистите кеш и проверьте страницу архива, чтобы убедиться, что кастомный стиль применяется только к продуктам на распродаже.
Альтернативное решение: добавление классов динамически
Если вы предпочитаете не редактировать шаблонные файлы, вы можете использовать хуки WooCommerce, такие как woocommerce_before_shop_loop_item_title
, чтобы динамически добавлять классы. Однако для вашей конкретной задачи редактирование шаблона content-product.php
является наиболее простым и надежным подходом.
Заключение
Следуя этим шагам, вы сможете легко установить собственный стиль для отображения цен на распродаже на странице архива WooCommerce. Обязательно выполняйте изменения в дочерней теме, чтобы сохранить их в будущем, и протестируйте ваш сайт на наличие изменений. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.