Как в Woocommerce отредактировать URL-адрес продукта, на который ссылается товар магазина?

#php #wordpress #templates #woocommerce

#php #wordpress #шаблоны #woocommerce

Вопрос:

Я пытаюсь настроить Woocommerce так, чтобы информация о продукте для каждого элемента была встроена в другую пользовательскую страницу WordPress, и они заменяют страницы моего продукта для покупок.

Поэтому, когда пользователь нажимает на продукт в разделе «Сопутствующие товары», или в магазине, или на боковой панели, я хочу, чтобы они попадали на страницу, которую я создал, а не на страницу продукта, созданную Woocommerce.

Поэтому вместо ссылки на booklab/products/product-name/ я хочу, чтобы все ссылки на магазин ссылались на booklab/books /product-name/

Я добился этого результата в виджете боковой панели, скопировав content-widget-product.php файл шаблона в мою тему и изменение следующей строки:

 <a href="<?php echo esc_url( get_permalink( $product->id ) ); ?>" title="<?php echo esc_attr( $product->get_title() ); ?>">
  

к этому:

 <a href="/booklab/books/<?php echo $product->post->post_name; ?>/" title="<?php echo esc_attr( $product->get_title() ); ?>">
  

Однако я не могу найти нужный файл шаблона для редактирования, чтобы повлиять на окно «Сопутствующие товары» или ссылки из магазина. Мне кажется, это должно включать изменение этой строки в content-single-product.php файл шаблона:

 <meta itemprop="url" content="<?php the_permalink(); ?>" />
  

Но, насколько я могу судить, изменение этого параметра ни на что не влияет. Я не могу найти больше нигде в файлах шаблонов, где упоминается постоянная ссылка, и поэтому я могу редактировать.

Ответ №1:

«Похожие товары» расположены в шаблонах woocommerce в / single-product/related.файл php, но я бы рекомендовал вместо «взлома» / «жесткого кодирования» просто изменить настройки в разделе Woocommerce -> Настройки -> Товары -> Отображение, просто поместив свою пользовательскую страницу вместо страницы магазина по умолчанию (или еще проще, вы можете изменить значение по умолчаниюстраница «магазин»).

Также, если вам нужно, вы можете настроить пользовательскую структуру URL-адреса в разделе Настройки -> Постоянные ссылки -> Постоянные ссылки на товар для вашей страницы магазина.

Удачи!

Комментарии:

1. Привет, bhelmet — большое спасибо за ваш вклад! К сожалению, ни один из этих методов не дает желаемого результата. Использование пользовательской страницы для моей страницы «магазин» не влияет на отдельные страницы продукта или на какие страницы нацелены ссылки в разделе «Связанные». Изменение постоянных ссылок изменяет только структуру URL. Моя проблема в том, что я хочу использовать свои собственные пользовательские страницы со встроенной в них информацией о продукте вместо автоматически сгенерированных страниц продукта.

2. И ‘single-product / related. файл php не содержит ссылок, которые я могу редактировать — он встраивает части шаблона из других источников, и я, похоже, не могу отследить, где он получает код для ссылки.

3. Ну, тогда вы можете создать пользовательский цикл в reated.php файл в соответствии с вашими конкретными потребностями ( content-product.php по умолчанию используется file in the loop).

4. Спасибо! Я боюсь, что пользовательский цикл может быть немного выше моих возможностей, и, как бы я ни старался, я не могу найти то, что я должен редактировать в content-product.php досье.

5. Теперь я немного продвинулся в этом. Ссылка, которую мне нужно изменить или перезаписать, находится в wc-template-functions.php в папке «includes»: function woocommerce_template_loop_product_link_open() { echo '<a href="' . get_the_permalink() . '" class="woocommerce-LoopProduct-link">'; } поскольку этого нет в папке шаблонов woocommerce, я не могу редактировать его напрямую — я полагаю, мне нужно где-то вставить свой собственный пользовательский код, чтобы заменить его. Но поскольку вы не можете «echo» внутри «echo», я также не знаю, на что бы я это изменил — я не хочу, чтобы он захватывал постоянную ссылку, а другую страницу.