
Здравствуйте! Извиняюсь если с моей проблемой нужно в раздел Вопросы новичков.
Появилась необходимость сделать так, что бы при открытии страницы товара, "по умолчанию" таб "Детали" был бы первым, а не вторым. И у меня это получилось сделать в теме storefront путём изменения функции woocommerce_default_product_tabs в файле wc-template-functions.php.
Я поменял приоритеты у 'Description' и Additional information. Additional information я выставил 10.
Проблема в том что это не работает когда я пытаюсь это сделать в дочерней теме. Собственно дочернюю тему я ради этого изменения и создал(Как написано в гайдах, что бы оригинал не трогать).
Может быть я вообще не правильно расположил файлы дочерней темы в папках? У меня их всего два. Style.css, он лежит в папке с дочерней темой (он пустой, только
Файл wc-template-functions.php я полностью скопировал, и удалил строку
Вопросы:
1. Можно ли так вообще (меняя приоритеты) делать? Или это "колхоз" какой то, и в будущем могут проблемы быть из за этого? (Извиняюсь за глупые вопросы WP первый мой сайт (не считая создания хтмл страничек сто лет назад)).
2. Правильно ли я файл расположил? Если да, то почему же когда я изменяю функцию в оригинальной теме, то все работает как надо?
3. Есть другой, альтернативный, правильный
способ сделать то что я хотел.
P.S.
Не обязательно именно расположение менять, достаточно бы было что бы вкладка "Детали" была изначально активна при открытии страницы товара.
Спасибо.
Появилась необходимость сделать так, что бы при открытии страницы товара, "по умолчанию" таб "Детали" был бы первым, а не вторым. И у меня это получилось сделать в теме storefront путём изменения функции woocommerce_default_product_tabs в файле wc-template-functions.php.
Я поменял приоритеты у 'Description' и Additional information. Additional information я выставил 10.
Код:
<?php
if ( ! function_exists( 'woocommerce_default_product_tabs' ) ) {
/**
* Add default product tabs to product pages.
*
* @param array $tabs Array of tabs.
* @return array
*/
function woocommerce_default_product_tabs( $tabs = array() ) {
global $product, $post;
// Description tab - shows product content.
if ( $post->post_content ) {
$tabs['description'] = array(
'title' => __( 'Description', 'woocommerce' ),
'priority' => 20,
'callback' => 'woocommerce_product_description_tab',
);
}
// Additional information tab - shows attributes.
if ( $product && ( $product->has_attributes() || apply_filters( 'wc_product_enable_dimensions_display', $product->has_weight() || $product->has_dimensions() ) ) ) {
$tabs['additional_information'] = array(
'title' => __( 'Additional information', 'woocommerce' ),
'priority' => 10,
'callback' => 'woocommerce_product_additional_information_tab',
);
}
// Reviews tab - shows comments.
if ( comments_open() ) {
$tabs['reviews'] = array(
/* translators: %s: reviews count */
'title' => sprintf( __( 'Reviews (%d)', 'woocommerce' ), $product->get_review_count() ),
'priority' => 30,
'callback' => 'comments_template',
);
}
return $tabs;
}
}
?>
Может быть я вообще не правильно расположил файлы дочерней темы в папках? У меня их всего два. Style.css, он лежит в папке с дочерней темой (он пустой, только
@import url(“../storefront/style.css”);
в нем.) И файл wc-template-functions.php, он лежит в дочерняяТема/woocommerce/includes/.Файл wc-template-functions.php я полностью скопировал, и удалил строку
if ( ! function_exists( 'woocommerce_default_product_tabs' ) ) {}
.Вопросы:
1. Можно ли так вообще (меняя приоритеты) делать? Или это "колхоз" какой то, и в будущем могут проблемы быть из за этого? (Извиняюсь за глупые вопросы WP первый мой сайт (не считая создания хтмл страничек сто лет назад)).
2. Правильно ли я файл расположил? Если да, то почему же когда я изменяю функцию в оригинальной теме, то все работает как надо?
3. Есть другой, альтернативный, правильный
P.S.
Не обязательно именно расположение менять, достаточно бы было что бы вкладка "Детали" была изначально активна при открытии страницы товара.
Спасибо.