ПредишенСледващото

Начало → Теми → Дете тема в WordPress

Свързано тема в WordPress ви позволява да правите промени в съществуващите теми, с, така че тези промени няма да бъдат загубени при ъпдейт на оригиналния (или родител) тема. В допълнение към външния вид, детските теми ви позволи да промените оформлението, дори и функционалността на родител тема, то да се разширява според вашите собствени нужди.

Подкрепа за детето (дете теми) се появи по-скоро в WordPress, но повечето хора днес все още предпочитат да се направят промени в изходния код директно към темата. В тази статия ще говорим за това как темите на детето в WordPress и защо, с помощта на детето трябва да правим никакви промени в съществуващите нишки.

Какво е дете тема

Дете тема в WordPress - е тема, която е наследник на облика на пълната функционалност на майки (начални) нишки. Това наследство го прави лесен за изменение и допълнение на някои части от родителски темата, без да се променя много оригиналната тема. С този подход, актуализиране на темата родител няма да повлияе на тези промени.

Родител тема може да направи всяка друга тема за WordPress (с изключение на дъщерните дружества), както и за ползване на детето тема, и двете теми, трябва да се зададе, но е необходимо да активирате дъщерното дружество.

Как да се създаде дете тема

Като пример, ние ще създадем дъщерно тема Моето дете Тема и ще използва по подразбиране тема Двадесет Дванадесетте на като родител.

Първо, уверете се, че темата родител там - Намери twentytwelve директория за WP-съдържание / теми. След това създайте нова папка в WP-съдържание / теми и го наричат ​​моето дете-тема. създадете файл style.css в тази нова директория и поставете следната заглавка в нея:

С това заглавие, ние сме идентифицирали името на новата ни тема, както и определен родител. @import директива в този случай се зарежда всички стилове на тема Twenty Twelve, на върха на която ние ще направим нашите промени. Без тази директива, нашата дъщерна тема ще наследи само шаблони (планировка) на тема майка, а не стил.

След това, с темите на директорията ви трябва да изглежда по следния начин:

теми за деца от WordPress

Структурата на тема дете

Отиди до появата → Теми, ще видите, че новата тема е на разположение за активиране.

теми за деца от WordPress

Активиране на дете темата

Ако я активирате, и ще отидете на началната страница на сайта ви, вие ще откриете, че детето ви тема изглежда точно като темата по подразбиране Двадесет Дванадесет.

Работа с Стилове

CSS стилове дете тема могат да се задават директно във файла style.css веднага след директивата @import. Например, за да определят цвета на фона и цветовете връзка в темата си, добавете следния код във файла от стилове:

Така че можете да промените стила на каквито и да било елементи на темата родител, и да намерят желаната опция, можете лесно чрез инструментите за разработчици в Google Chrome, или с помощта на разширението Firebug за Firefox браузър.

Работа с шаблони

С едно дете тема, можете лесно да променяте самите шаблони родител тема. Това е достатъчно, за да създадете файл във темата дете със същото име като това на шаблона към темата родител. Например, за да замени footer.php шаблон по своему, да създавате footer.php файл в директорията с детето си тема:

По този начин ние се замени текста в мазето на двадесет и Дванадесет тема на нашата собствена.

Често, когато се работи с шаблони в детските теми по-лесно да копирате съществуващ шаблон от темата родител и го променят още дъщерно предмет, като по този начин запазването на цялата структура на документа за HTML. Ако направите грешка, винаги можете да изтриете шаблон и да започнете отначало.

Можете също така да създадете нов шаблон файлове, които липсват в темата родител, и WordPress ще ги свърже според йерархията на шаблон. Например, ако родителят не е предмет page.php файл, можете да създадете файл със същото име в детето си тема и WordPress го включите при показване на една страница.

Трябва също да се отбележи, че по подобен начин, за да го промените, е възможно не всички файлове на темата родител. Например, не можете да променяте файла, който е бил причинен от РНР включва функция или да изискват.

Работа с functions.php

Файл с функциите functions.php Темата е от особено значение за WordPress. Вие не може да замести детето ви тема, но можете да създадете свой собствен functions.php файл. WordPress, които ще се представят пред functions.php за изтегляне или друг шаблон родител тема.

Това означава, че във вашата functions.php файла, можете да използвате събития, филтри и така наречените "предефинирани" функция, за да се манипулира поведението на темата родител. Например, във файла footer.php в една тема, наречена twentytwelve_credits Двадесет Дванадесет събития. За да добавите нашия собствен текст по време на това събитие, можем да използваме следния код към functions.php нашите дъщерни теми:

Можете също така да замени някои от функциите на тема майка. Така например, в темата Twenty Twelve функция twentytwelve_content_nav използва за показване на навигацията чрез записите. Ако е необходимо да се промени поведението на тази функция, например да се използва WP-PageNavi навигация. можете да го замени във файла functions.php в дъщерното темата:

Имайте предвид, че не може да отмените всички функции на тема родител, и само тези, които са увити в състояние да функционира function_exists. например:

Локализация на дъщерните дружества

След това можете да използвате WordPress функция локализация във вашите редове:

Имайте предвид, вторият параметър (текст домейн), тя трябва да съвпада с това, че сте задали във функцията обаждане load_child_theme_textdomain. По този начин, WordPress ще използва езика на директориите в дъщерното предмет от всички редове с домейна ми дете-тема. с линията в оригиналната тема ще продължи да бъде прехвърлен с помощта на оригиналните езикови пакети.

заключение

В заключение бих искал да отбележа още веднъж - никога не променя изходните файлове на съществуващите теми WordPress, всички промени ще бъдат загубени, когато модернизация на темата. Това дете теми са най-надежден и коректен начин да се направят промени в съществуващата WordPress тема.

Ако искате да направите промени само за нивото на CSS (без промяна на шаблони), можете да използвате всяка приставка за редактиране на CSS.

Костя, благодаря ти!

Добре дошли Константин. Той разкъса цялата коса е вече на проблема с локализация на дете тема. Всички направени в съответствие с инструкциите. Сложих във функцията на необходимия код. Аз създадох По и движ файлове (използвайки CodeStyling Локализация плъгин) в дъщерните и темата родител. Въпреки това, след актуализиране на темата, както се очакваше, изчезна локализация файлове в темата родител и цялата превода е изчезнала. Проверих всичко. Аз разбирам, че vordrpress отнема локализация файлове само от родител тема и не може да ги видите в папката езици дете тема. Постоянно трябва да копирате По и движ файлове от дъщерното дружество на компанията-майка и само работи. Въпреки че, както аз го разбирам, файловете с локализация трябва да работят от дете тема и не могат да бъдат променяни родител тема. Не можете да ми кажете какво може да е проблема? Благодаря.

Дмитрий, ако не се лъжа това е новата линия могат да бъдат преведени единствено дете тематични файлове за локализация, които се използват в дъщерно въпрос те в действителност и "текстови домейн" трябва да бъде по-различно.

Ако искате да промените родител тема локализация файл, най-добре е да използвате директория WP-съдържание / езици / теми / THEMENAME и мястото, където файловете за превод, въпреки че са планирани промени 4.0 в тази област, и това не е съвсем ясно как това ще се отрази на надстройката.

Направих всичко, както ти каза, но някак си стил никога замятането.
/ *
Тема Име: Съева дете
Описание: Моето дете тема
Шаблон: suevafree
* /

в това, което може да е проблема?

и специална благодарност за вашия сайт, това е много лесно да се разбере, ясно написано, и най-вече приятен за окото и добре структурирана!

Би било по-лесно, ако то е било изпратено линк към вашия сайт, където сте инсталирали това дете тема.

всичко, което направи същото и с друга тема (двадесет и дванадесет, всичко беше перфектно. Каква е причината? Самата тема на това? Какво друго може да се отрази на външния вид на страницата, в допълнение към файла style.css?

Добре дошли Константин. И как да се уверите, че използването на едно дете тема, за да се премахне част от кода на function.php. Така например, в темата майка в function.php файл съм създал снимка с измерванията на кода означава «add_image_size (" палец-малък ", 160, 160, вярно);». Искам да направя тази част от кода не се извършва, как да го направя?

Здравейте, Константин. Имам същия проблем като с Галина. Исках да центрирате двадесет четиринадесет години. Но това не е зареден стилове от родител тема. Кажи ми, моля те, какво не е наред?
/ *
Тема Име: twentyfourteen
дете
Шаблон: twentyfourteen

Кажи ми как да бъде плъгина? Има два конкретни примера. Промених woocommerce плъгин - добавете кука, и промяна на реда на елементите в изходна плъгин. Направих промени в самия плъгин, а не във файла шаблон. Как да се направят промени в плъгините - така че когато се подновят, те държат? Създаване на нова приставка, или какво? Моля, кажете ми.

Журито, с плъгини за съжаление не работи, защото с теми. Ако имате нужда да добавите филтър или събитие в друг плъгин, най-добре е да се свържете с програмиста и ги помолете да добавите тази кука, като тя може да бъде от полза не само за вас.

Ако предприемачът откаже, тогава можете да поддържате сами "клон" на приставката, поддържа списък на промените, например под формата на .diff файл и да прилагат този файл, когато се обновява оригиналния плъгин.

Благодаря за бързата реакция. Версия на .diff на файла е автоматичен процес, или всички промени трябва да бъдат направени ръчно всеки път?

Ако го автоматизира, той ще бъде автоматизирано :) разл и кръпка комунални услуги се намират във всяка Unix-подобни системи. Ако щепселът е на GitHub, можете да опитате да запазите вилица там, и от време на време да го актуализира с оригинала.

Добър ден. Странни неща се случват.)) По партидата CSS (дъщеря), за да промените начина, по всичко наред, но понякога защо някои не искат да работят. Не ми казвай какво може да е проблема?

Задам една тема, която вече съдържа родител и дете. От astivirovala самото начало и е работил в компанията-майка. Това е време, за да инсталирате актуализацията. Необходимо е да активирате дъщерното дружество преди това събитие, но тя не е напълно копира майка (не nenokoryh губи страници от менюто, и така нататък.) Това, което трябва да се направи така, че тя да стане идентични. Благодаря.

Как да се замени дете тема файл function.php връзка направена в function.php родител тема? По-конкретно, се изисква следното: в function.php родител тема файл съдържа изисква get_template_directory () линия. "/inc/custom-header.php"; В същото време, когато активирате поръчка header.php дете тема се простира от темата родител. Аз разбирам, че за да се по поръчка header.php е взет от детето тема, трябва да се свържете ред в този файл замяна function.php дете тема. Как да го направя? Прости индикаторни линии изискват get_template_directory (). "/inc/custom-header.php"; в function.php дете тема е причината за грешката.

Не, ако обектът се използва директно изисква. да се промени поведението на детето не мога. Във вашия случай е по-добре да се намери филтри и събития, които се извършват в обичай-header.php и се опитайте да ги деактивирате remove_action или remove_filter.

Вероятно глупав, но това не се разбира: «_e (" Моят превод Тук се въвежда текст. "," Моето дете-тема '); ».
Всъщност се оказа, успешно създава спомагателен обект, хвърли му дъщеря «езика» папка с променените файлове за трансфер. Аз предписано в досието functions.php всичко, както е описано в статията, но преводът не се показва. Опитах се да преинсталирате темата последвано от активиране, но нищо не се е случило.

Ако задачата е да направите своя собствена съществуваща тема превод, най-вероятно трябва да използвате различен филтър, а именно:

$ Mofile = apply_filters ( "load_textdomain_mofile ', $ mofile, $ домейн);

Т.е.. Трябва с помощта на неговите функции "хващане" за load_textdomain_mofile и сравняване на приплъзване пътя към файловете на домейни в дъщерно тема. По този начин ще бъде възможно да се съхранява преводи в дъщерно дружество на родител тематични шаблони, за да променят себе си ненужно.

Това вероятно не е най-якото начин, защото начина, по който вече завърши, което да се сравни не е много удобно да бъде.

Вероятно глупав, но това не се разбира: «_e (" Моят превод Тук се въвежда текст. "," Моето дете-тема '); ».

Моят превод Тук се въвежда текст - текстът да бъде преведен.

моето дете-тема - текстова дъщерно домейн обект (трябва да е различен от майка).

Превод отсъства от страницата contact.php създаде копие на дъщеря ми. Под редакцията домейни в този файл на домейн-дете. Ами, всъщност се появява на всички преводи. Но се оказва, сега в случай contact.php актуализация не е бил засегнат. Склонен да мисля, че е необходимо да се замени родителската функция «load_theme_textdomain»

Въпреки, че в този случай няма да бъде актуализиран превод. Ще трябва да го оставите в това.

И, въпреки че спирка. Можете също така да сравните домейн - тя е красива, тоест, от нормалното ако ($ домейн === "родител-тематично име") ... И нищо общо с $ Mofile не е необходимо - то трябва само да напишете нов път до файла на темата за децата и всички :)

Като цяло, темата не трябва да изтеглите всичко, за да им директория, той трябва да се зареди всички потребителското съдържание само в WP-съдържание / качено, добре, всичко зависи от кода, които могат да бъдат заредени в родителя, а може би и в дъщерно дружество.

В промените inkluda, направени чрез дъщерното дружество не може, поради те се зареждат директно чрез включват () или изискват (). а не чрез locate_template ().

С! Важно работата изобщо трудно да се замени този стил, вие също трябва да използват! Важна и все пак да избере по-специфичен селектор CSS.

Подкрепете проекта - споделете линка, благодаря!