@Grizar

Сделать название товара кликабельным?

В теме Storefront при установке нужного мне плагина пропала кликабельность заголовока товара в списке товаров , как сделать чтобы при клике на название был переход на страницу товара.
Я обнаружил что у меня заголовок товара в списке "голый", обернут в h2 class="woocommerce-loop-product__title"
Тогда я
- нашел в wc-template-functions.php (woocommerce)
echo '<h2 class="woocommerce-loop-product__title">' . get_the_title() . '</h2>';


и я хочу подключить <a href='" . get_permalink($product_ID) . "'>

я просто вставляю и получаю

echo '<a href='" . get_permalink($product_ID) . "'><h2 class="woocommerce-loop-product__title">' . get_the_title() . '</h2></a>';

сохраняю файл и закидываю его в родительскую тему
и
ни чего не происходит ?
А если напрямую меняю файл в папке вукомерс-(ну именно эту строку(1066)) то сайт ломается.

еще раз повторюсь, подключаемый плагин , который мне нужен из
<div class="item-title">
        <a title="Набор Кисти для окрашивания волос" href="https://сайт/product/kisti/">Набор Кисти для окрашивания волос</a>
    </div>

делает
<h2 class="woocommerce-loop-product__title">Набор Кисти для окрашивания волос</h2>

при подключении нужного мне плагина у меня нет больше item-title, а ссылка на карточку товара приобретает вид
<div class="slideshow-container">
<a href="https://сайт/product/baby-tro/">
                   <div class="vspsSlides vsps_slider_fade vsps-active-slide"></div>
                    <div class="vspsSlides vsps_slider_fade"></div>
</a>
<div class="vsps-slider-container"></div>
<div>
          <h2 class="woocommerce-loop-product__title">Набор Кисти для окрашивания волос</h2>
          <span>....</span>
          <div>....</div>
          .....
           ......
</div>
</div>


Мне хотелось бы внедрить ссылку именно в h2 class="woocommerce-loop-product__title">Набор Кисти для окрашивания волос

Подскажите хук, как это сделать через функции.пхп
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
Hу в общем то все верно.
Файл wc-template-functions.php не является шаблонным файлом поэтому он не может быть перезаписан простым копированием в тему.
Но, если Вы внимательно посмотрите на функцию в которой находится этот код, то увидите, что она обрамлена в конструкцию вида if ( ! function_exists( ... ) ) и это позволяет переопределять функцию.
Т.е. все что нужно сделать, это в Вашем файле ( например functions.php) переопределить эту функцию
Например так
/**
 * Переопределяем функцию, т.к. нет из нее фильтра
 */
if ( ! function_exists( 'woocommerce_template_loop_product_title' ) ) {

	/**
	 * Show the product title in the product loop.
	 */
	function woocommerce_template_loop_product_title() {
		echo 'тра та та. Ваш код здесь' ;
	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы