• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Выбор шаблона страницы

LookeR

Форумчанин
Экспериментирую на теме ShootingStar Premium.
У неё есть несколько шаблонов страниц, которые можно выбрать при создании страницы.
WooCommerce для создания страницы товара, по всей видимости, взял "Базовый шаблон" оформления страницы.
Можно ли сделать выбор шаблона страницы при добавлении товара? Как?


Если нельзя сделать выбор - видимо надо идти путем переименований нужного шаблона страницы в базовый для WooCommerce?

Интересуют исправления, которые не исчезнут после обновления плагина или темы (рассчитываю на работу неподготовленного пользователя).
 

searchingman

Гуру
Местный
WooCommerce для создания страницы товара, по всей видимости, взял "Базовый шаблон" оформления страницы.
Можно ли сделать выбор шаблона страницы при добавлении товара? Как?
У WooCommerce свои шаблоны. См. описание файлов шаблонов WooCommerce.


Если нельзя сделать выбор - видимо надо идти путем переименований нужного шаблона страницы в базовый для WooCommerce?
См. как вносить изменения в файлы шаблонов WooCommerce, чтобы ничего не затерлось после обновления плагина.
 
  • Like
Реакции: D&B

rikitiki

Специалист
Местный
Тоже интересует данный вопорос. Хотелось бы например, для отдельной страницы с шорткодом, на сайте, применить в витрине не content-product.php а некий отредактированный ( с другой последовательностью вывода элементов) content-product-2.php. Как это сделать?
 

searchingman

Гуру
Местный
Спасибо! Прочитал эту тему прежде чем задать вопрос.
Если Вы изучили предыдущие ссылки, то что у Вас не получается?
Чтобы избежать проблемы с обновлением темы пользуйтесь дочерними темами.
Премиум темы, как правило, идут вместе с дочерними темами.
 
Последнее редактирование:

LookeR

Форумчанин
...что у Вас не получается?
Возможно я взялся стрелять "из пушки по воробьям"... :-( т.к. мне по сути интернет-магазин не нужен. Нужен каталог-рубрикатор изделий.
Пока я пытаюсь реализовать задачу не залезая в код, т.е. стандартными средствами, которые предоставляют WP, WC и их плагины.
Про дочерние темы я знаю, но дело, как я понимаю, кроется не в теме... а в функционале WC.

Повторю вопрос:
Тема предоставляет возможность выбора оформления страницы на базе шаблонов (набор этих шаблонов в т.ч. и делает тему Премиальной).
Можно ли сделать так, что при создании страницы товара в WC, выбирается шаблон страницы, как это позволяет используемая премиальная тема?

Понятно, что можно взять шаблон нужной страницы и подпихнуть WC вместо, используемого им для товара.
Но это опять один шаблон для всех товаров. А хочется выбрать...
Вопрос в том, можно ли осуществить выбор??? Например, есть часть изделий, которые имеют большую описательную часть с таблицами. И им хорошо бы убрать правую область виджетов, что бы не получать горизонтальный скроллинг.
Или например, нужен шаблон страницы без иллюстрации товара.
и т.д. и т.п.

Есть возможность сделать выбор шаблона страницы для карточки товара в WC стандартными средствами?
Или нужно будет платить программисту за доработку функционала?
 

searchingman

Гуру
Местный
Есть возможность сделать выбор шаблона страницы для карточки товара в WC стандартными средствами?
Или нужно будет платить программисту за доработку функционала?
Если речь про возможность выбора шаблона, как для страницы Wordpress (1й способ), то стандартно для товара не реализовано.
Реализовать такое возможно в виде плагина.

Н-р, для записей в Wordpress тоже нельзя штатно использовать разные шаблоны (только для страниц).
Но есть плагин, который работает для кастомных типов записей, но не работает для товаров.
 
Последнее редактирование:

searchingman

Гуру
Местный
Тоже интересует данный вопорос. Хотелось бы например, для отдельной страницы с шорткодом, на сайте, применить в витрине не content-product.php а некий отредактированный ( с другой последовательностью вывода элементов) content-product-2.php. Как это сделать?
Во всех стандартных шорткодах WooCommerce используется конструкция
PHP:
<?php wc_get_template_part( 'content', 'product' ); ?>
Последовательность поиска файла шаблона wp_template_part('slug','name')
  1. Поиск в вашей теме ВашаТема/slug-name.php и ВашаТема/woocommerce/slug-name.php
  2. Если не существует, то поиск в шаблонах плагина, т.е. /plugins/woocommerce/templates/slug-name.php
  3. Если не существует, то поиск в вашей теме ВашаТема/slug.php и ВашаТема/woocommerce/slug.php
  4. Возможность изменения файла шаблона с помощью фильтра apply_filters( 'wc_get_template_part', $template, $slug, $name )
Пример изменения конкретного файла шаблона на другой, вставив код в functions.php своей темы.
PHP:
function wc_get_template_part_my($template, $slug, $name) {
    // имя нового файла шаблона
    $my_template = "content-product2.php";
    // if ($slug == 'content' && $name == 'product') // если вызывается шаблон content-product.php
    if ($slug == 'content' && $name == 'product' && is_page(2)) // + если страница с ID = 2
        // файл шаблона в ВашаТема/content-product2.php или ВашаТема/woocommerce/content-product2.php
        $template = locate_template( array( $my_template, WC()->template_path() . $my_template));
    return $template;
}
add_filter('wc_get_template_part', 'wc_get_template_part_my',10,3);
 
Последнее редактирование:

rikitiki

Специалист
Местный
Огромное спасибо за помощь! Однако не улавливаю, как должен выглядеть на странице код любого шорткода с витриной, который будет использовать не content-product.php, а content-product-2.php?
 

searchingman

Гуру
Местный
Огромное спасибо за помощь! Однако не улавливаю, как должен выглядеть на странице код любого шорткода с витриной, который будет использовать не content-product.php, а content-product-2.php?
Если Вы выводите шорткод на конкретной странице и хотите для него другой шаблон, то идентифицировать нужно по ID страницы ( is_page(ID_страницы) ), как показано в вышеприведенном примере.
 

rikitiki

Специалист
Местный
Вставил в папку template в дополнение к файлу content-product.php модифицированный файл content-product-2.php. Там у меня только заголовок h3 в div завёрнут. Но в файербаге это изменение должно быть видно.
Создал страницу и вставил туда между абзацами обычный шорткод витрины. Соответственно витрина появилась между абзацами.
Наконец в конец functions.php темы вставил рекомендуемый код, в котором вместо цифры 2 поставил цифру id страницы.
В результате витрина на странице между абзацами исчезла.
 
Последнее редактирование:

rikitiki

Специалист
Местный
Сильных изменений я не вносил.
В content-product.php
<h3><?php the_title(); ?></h3>
А в content-product-2.php у меня заменено на
<div class="text"><p><?php the_title(); ?></p></div>
Соответственно ссылка на страницу, где действует обычный шорткод, работающий с content-product.php:
http://nina.besaba.com/shortkody-2-wocommerce/
И ссылка на страницу где шорткод должен работать с content-product-2.php:
http://nina.besaba.com/shortkody-woocommerce/
Там пустота между абзацами. Хотя в файербаге кое-что из витрины просматривается
Отмечу также, что если вносить замену в коде непосредственно в файле content-product.php, то всё прекрасно показывается.
 
Последнее редактирование:

searchingman

Гуру
Местный
Вставил в папку template в дополнение к файлу content-product.php модифицированный файл content-product-2.php.
Для приведенного выше примера файл шаблона должен находиться либо в ВашаТема/content-product-2.php либо в ВашаТема/woocommerce/content-product-2.php, но не в папке template.
Приведите полностью код, который Вы вставили в functions.php вашей темы.

По ссылке http://nina.besaba.com/shortkody-woocommerce/ видно, что новый шаблон не вызывается вообще.
 

rikitiki

Специалист
Местный
Да...! Всё прекрасно работает! Огромное спасибо!
Просто хочу написать на отдельной странице статью, где в качестве примера показать шорткодом витрину в другом формате. Слышал что изредка писать уникальные статьи полезно для сайта.
В витрине скрипт, который требует изменения content-product.php.
Но у меня на сайте кроме блога магазин, и он испортится, если я начну content-product.php курочить.
 
Последнее редактирование:

rikitiki

Специалист
Местный
Ещё один вопрос, если не возражаете и я вам не надоел.
А для поста такое можно повторить?
А то я на радостях создал копию в записях, ну и вставил ID записи вместо ID страницы. Однако написало ошибку.
Сейчас получается что нужно создавать статью на странице и делать редирект на неё из записей.
 
Последнее редактирование:

rikitiki

Специалист
Местный
Здравствуйте searchingman!
Возникла необходимость, чтобы ваш код действовал на нескольких страницах (записях), Ответьте пожалуйста, как вставить в него несколько ID?
Спасибо!
 

LookeR

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

Дошли руки. Как ни странно Товары в списке плагина присутствуют тоже... интерфейс плагина в Товаре тоже есть.
Шаблоны еще не пробовал подпихнуть, т.к. с английским не очень дружу и не совсем вник в алгоритм действий.
Там кажется в отдельную папку надо шаблон страницы пихнуть и "заголовок-комментарий" вписать.

Думаю, что это то, что нужно. Спасибо! Буду изучать.

UPD: Рано возрадовался. :-( В записях работает (подсунул шаблон). В Товарах в интерфейсе есть (и новый шаблон тоже), а использовать - не использует. Видимо потому, что WC берет шаблоны из другого места. :-(
 
Последнее редактирование:
Сверху Снизу