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

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

Тема в разделе "Вопросы, советы и доработки.", создана пользователем LookeR, 17 июл 2015.

  1. LookeR

    LookeR

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


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

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    У WooCommerce свои шаблоны. См. описание файлов шаблонов WooCommerce.


    См. как вносить изменения в файлы шаблонов WooCommerce, чтобы ничего не затерлось после обновления плагина.
     
    • Нравится Нравится x 1
  3. LookeR

    LookeR

    Сообщения:
    25
    Симпатии:
    2
    Баллы:
    3
    Спасибо! Прочитал эту тему прежде чем задать вопрос.
     
  4. rikitiki

    rikitiki Местный

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Если Вы изучили предыдущие ссылки, то что у Вас не получается?
    Чтобы избежать проблемы с обновлением темы пользуйтесь дочерними темами.
    Премиум темы, как правило, идут вместе с дочерними темами.
     
    Последнее редактирование: 18 июл 2015
  6. LookeR

    LookeR

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

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

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

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Если речь про возможность выбора шаблона, как для страницы Wordpress (1й способ), то стандартно для товара не реализовано.
    Реализовать такое возможно в виде плагина.

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Во всех стандартных шорткодах 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_templateWC()->template_path() . $my_template));
        return 
    $template;
    }
    add_filter('wc_get_template_part''wc_get_template_part_my',10,3);
     
    Последнее редактирование: 19 июл 2015
    • Нравится Нравится x 2
  9. rikitiki

    rikitiki Местный

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Если Вы выводите шорткод на конкретной странице и хотите для него другой шаблон, то идентифицировать нужно по ID страницы ( is_page(ID_страницы) ), как показано в вышеприведенном примере.
     
    • Нравится Нравится x 1
  11. rikitiki

    rikitiki Местный

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

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Сильных изменений я не вносил.
    В 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, то всё прекрасно показывается.
     
    Последнее редактирование: 19 июл 2015
  13. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Для приведенного выше примера файл шаблона должен находиться либо в ВашаТема/content-product-2.php либо в ВашаТема/woocommerce/content-product-2.php, но не в папке template.
    Приведите полностью код, который Вы вставили в functions.php вашей темы.

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

    rikitiki Местный

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

    rikitiki Местный

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Вместо условия is_page(ID_страницы) используйте is_single(ID_поста).
     
    • Нравится Нравится x 1
  17. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Спасибо! Отлично! И для записи работает!
    http://nina.besaba.com/shortkody-3-woocommerce/
     
  18. rikitiki

    rikitiki Местный

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    is_page( array(ID_1, ID_2, ID_3) )
    is_single(array(ID_1, ID_2, ID_3))
     
    • Нравится Нравится x 1
  20. LookeR

    LookeR

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

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

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