Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 1
Регистрация: 21.02.2010
Сообщений: 272
1

Наследование темы в wordpress

03.10.2015, 15:04. Просмотров 691. Ответов 0
Метки нет (Все метки)

Всем привет,
В wordpress 4.3.1 наследую тему "storefront" как описано тут http://codex.wordpress.org/Child_Themes

Создал файлы wp-content/themes/storefront-child/style.css :
Код
/*               wp-content/themes/storefront-child/functions.php
 Theme Name:   Storefront Child
 Theme URI:    http://example.com/storefront-child/
 Description:  Storefront Child Theme
 Author:       Sergey Nilov
 Author URI:   http://example.com
 Template:     storefront
 Version:      1.0.0
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
 Text Domain:  storefront-child
*/
 h1 {
    background-color: brown;
}
h2 {
    background-color: greenyellow;
}
и wp-content/themes/storefront-child/functions.php :
Код
<?php
/**
 * storefront-child engine room
 *
 * @package storefront-child
 */

/**
 * Initialize all the things.
 */
//require get_template_directory() . '/inc/init.php';
echo '<pre>get_template_directory() :'.print_r(get_template_directory() ,true).'</pre>';   // выводит   :  get_template_directory() :/mnt/diskD_Work/wwwroot/displo-wp/wp-content/themes/storefront
echo '<pre>get_template_directory_uri() :'.print_r(get_template_directory_uri() ,true).'</pre>';  // выводит   :  get_template_directory_uri() :http://local-displo-wp.com/wp-content/themes/storefront

@ini_set( 'log_errors', 1 );
//echo '<pre>WP_DEBUG_LOG:'.print_r(WP_DEBUG_LOG,true).'</pre>';
ini_set( 'error_log', ABSPATH . 'log/debug.log' );


add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    $parent_style = 'storefront'; 
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'storefront-child',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style )
    );
}
Наследование работает, но некоторые вещи мне непоняты :
1) А как указано наследование на родительский файл functions.php ?
css файл указан явно, через вызов get_stylesheet_directory_uri(
и почему вызовы get_template_directory() и get_template_directory_uri() возвращают родительскую тему storefront? По именам "storefront"/"storefront-child" в заголовке темы?

2) При подключении в theme_enqueue_styles родительских "storefront" и "storefront-child" стилей в исходнике я вижу :
Код
<link rel='stylesheet' id='storefront-css'  href='http://local-displo-wp.com/wp-content/themes/storefront/style.css?ver=4.2.5' type='text/css' media='all' />
<link rel='stylesheet' id='storefront-child-css'  href='http://local-displo-wp.com/wp-content/themes/storefront-child/style.css?ver=4.2.5' type='text/css' media='all' />
<link rel='stylesheet' id='storefront-style-css'  href='http://local-displo-wp.com/wp-content/themes/storefront-child/style.css?ver=1.0.0' type='text/css' media='all' />
если закоментарить второй вызов стилей :
Код
    $parent_style = 'storefront'; // http://wordpress.stackexchange.com/questions/163301/versioning-import-of-parent-themes-style-css
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    /*wp_enqueue_style( 'storefront-child',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style )
    ); */
То вижу в исходниках:
Код
<link rel='stylesheet' id='storefront-css'  href='http://local-displo-wp.com/wp-content/themes/storefront/style.css?ver=4.2.5' type='text/css' media='all' />
<link rel='stylesheet' id='storefront-style-css'  href='http://local-displo-wp.com/wp-content/themes/storefront-child/style.css?ver=1.0.0' type='text/css' media='all' />
Как-то не так как я полагал по описанию, почему в первом случае подлючалось 3 css-файла( storefront-child/style.css дважды но с разными номерами версий ) а во втором 2 файла?

3)
Мне нужно было вывести в списке заказов ниже каждого заказа картинку на основе FabricJS-библиотеки на основе этого пункта заказа
Я сделал :
Код
add_action('woocommerce_order_item_meta_end', 'displo_woocommerce_order_item_meta_end', 90);
function displo_woocommerce_order_item_meta_end($item_id, $item = '', $order = '')
{
    $_product_id = wc_get_order_item_meta($item_id, '_product_id');
    $nextPost = get_post($_product_id);
    show_displo_template_preview($nextPost, false, false, 'woocommerce_item_meta', $item_id, true);
}
Где show_displo_template_preview - это функция вывода картинки и ее можно вызвать на странице несколько раз
При этом мне нужно сохранить список ссылок на эти картинки чтобы отображения их можно было скачать
То есть нужно сделать массив где и хранить данные ссылки
Единственное место я нашел для этого это в файле wp-content/plugins/woocommerce/templates/order/order-details.php c кодом:

Код
	</thead>
    <script type="text/javascript" language="JavaScript">
        //<![CDATA[
        var stagesList= []
        //]]>
    </script>

            <tbody>
все работает, но это файл woocommerce плагина, а не моей темы.
Мне такое рещрешение не понравилось, а есть ли лучшее решение, чтобы мой код не затерся при при обновлении woocommerce плагина ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2015, 15:04
Ответы с готовыми решениями:

Перевод темы wordpress
Здравствуйте! Начал подготавливать тему, к переводу на английский язык и не могу сделать так,...

Установка темы на Wordpress
&lt;a class=&quot;uk-button&quot;&gt;&lt;?php echo.$this-&gt;load('menu-button')-&gt;title; ?&gt;&lt;/a&gt; При установки темы на...

Активация темы в wordpress
какой файл в wp отвечает за активацию темы?

Валидность WordPress темы
Здравствуйте, помогите пожалуйста разобраться с валидацией. Делаю дочернюю тему Twenty Twelve...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2015, 15:04

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

Адаптация темы на WordPress
Здравствуйте. Совсем запутался. Натягиваю тему на движок WordPress, следуя инструкциям видеоурока,...

Изменение темы для wordpress
Всем привет. Возникла такая задача перенести сайт на wordpress. Подскажите, как лучше реализовать...

DEMO/PRO темы Wordpress
C Wordpress знаком не так давно. Поэтому заранее прошу &quot;понять и простить&quot; если посчитаете глупым...

Не работают стили темы Wordpress
Итак проблема такая. Есть сверстанная веб страница. (версталась мной. Google chrome отображает...

Валидация кода темы Wordpress
Приветствую всех! Может кто сможет помочь исправить ошибку валидации кода в теме Colormag...

Настройка темы boldy на wordpress
День добрый! Подскажите плз как изменить тему boldy, а именно уменьшить размер слайдера и добавить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.