WooCommerce: Изменение шаблона для страницы отдельного товара

3 июн. 2015 г., 14:47:55
Просмотры: 122K
Голосов: 8

Я знаю, что есть возможность изменить структуру/дизайн страницы товара, редактируя файл single-product.php в дочерней теме.

Изменения в этом файле повлияют на все страницы товаров.

Но как изменить файл шаблона для конкретных страниц товаров? Как это можно сделать с пользовательским шаблоном страницы? Изначально на странице отдельного товара нет выпадающего списка шаблонов, как это есть для обычной страницы (см. изображение).

Как изменить шаблон конкретной страницы товара?

Выпадающий список шаблонов страницы в WordPress

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

Этот выпадающий список, который вы видите на экране редактирования страницы, доступен только для страниц. Возможный дублирующий вопрос: https://wordpress.stackexchange.com/questions/35221/how-to-get-template-drop-down-menu-in-page-attributes-of-custom-post-type https://stackoverflow.com/questions/5652817/select-template-menu-for-custom-post-types

Jan Beck Jan Beck
3 июн. 2015 г. 15:44:24
Все ответы на вопрос 2
1

WooCommerce не входит в тему обсуждения, так как это плагин и не относится напрямую к WordPress, но вы можете скопировать шаблон single-product.php в папку WooCommerce вашей дочерней темы. Измените имя файла и отредактируйте его, затем используйте single_template или template_include с правильным условным тегом.

single_template

function get_custom_post_type_template($single_template) {
 global $post;

 if ($post->post_type == 'product') {
      $single_template = dirname( __FILE__ ) . '/single-template.php';
 }
 return $single_template;
}
add_filter( 'single_template', 'get_custom_post_type_template' );

template_include

add_filter( 'template_include', 'portfolio_page_template', 99 );

function portfolio_page_template( $template ) {

    if ( is_page( 'slug' )  ) {
        $new_template = locate_template( array( 'single-template.php' ) );
        if ( '' != $new_template ) {
            return $new_template ;
        }
    }

    return $template;
}
3 июн. 2015 г. 18:07:28
Комментарии

Ни один из этих ответов полностью не решает вопрос: "как изменить файл шаблона для конкретных страниц товаров?"

Chris J Allen Chris J Allen
8 нояб. 2018 г. 11:38:16
0

Вам необходимо изучить иерархию шаблонов WordPress, чтобы понять, как это работает.

Одиночная запись (Single Post) #

Шаблон одиночной записи используется для отображения отдельной записи. WordPress использует следующий порядок поиска:

1. single-{post-type}.php — Сначала WordPress ищет шаблон для конкретного типа записи. Например, для типа записи product WordPress будет искать файл single-product.php.
2. single.php — Затем WordPress переходит к шаблону single.php.
3. index.php — В конце, как упоминалось выше, WordPress использует шаблон index.php.

Страница (Page) #

Шаблон, используемый для отображения статической страницы (тип записи page). Обратите внимание, что в отличие от других типов записей, page является особым для WordPress и использует следующий порядок:

   1. Пользовательский шаблон — Шаблон страницы, назначенный для конкретной страницы. См. get_page_templates().
   2. page-{slug}.php — Если ярлык (slug) страницы recent-news, WordPress будет искать файл page-recent-news.php.
   3. page-{id}.php — Если ID страницы 6, WordPress будет искать файл page-6.php.
   4. page.php
   5. index.php

Для конкретного ID вы можете использовать шаблон page-{id}.php.

3 июн. 2015 г. 15:57:46