Odvozená šablona

Zvolené téma obsahuje celkem 38 odpovědí. Do diskuze (15 účastníků) se naposledy zapojil uživatel  jasonarnold a poslední změna je stará 2 roky, 7 měsíců.

Aktuálně je na stránce zobrazeno 20 příspěvků - 1. až 20. (z celkem 39)
  • Autor
    Příspěvky
  • #23703

    Vendulka
    Participant
    Web

    Dobrý den,
    určitě se zeptám na něco, co zde bylo již řešeno – snažila jsem se takové téma najít, ale fakt nenašla.
    Používám na webu šablonu MesoColumn, ale protože jsem 100% lama a skoro slepá, proběhlo tam několik nutných úprav bez mojí účasti. Pro jazykové subdomény bych potřebovala tyto změny zachovat a odvozená šablona se zdá být nejlepší cestou (původního člověka ale už nemám k dispozici). Poradíte mi, prosím, postup (nejlépe postup pro blbé a nemyslím to nijak hanlivě)?

    #23707

    admin
    Keymaster
    Web

    Šablona MesoColumn vypadá povedeně, díky za tip! Nevím, jestli jsem zcela pochopil dotaz, ale došlo k nějakým (neznámým) úpravám šablony a chcete je odebrat do nově vytvořené odvozené šablony? To je bohužel trochu složitější, ale můžeme to nějak zkusit, i když nemusí jít o úpravy, které je možné prostřednictvím odvozené šablony snadno realizovat… Asi nejdříve se podívejte na FTP, kde najdete podle data poslední změny u souborů šablony, které soubory (a kdy) byly patrně změněny. Potom budete muset tyto soubory ručně porovnat a najít rozdíly (umí to např. editor PSPad), případně změny odebrat a vložit do odvozené šablony… Ale klidně se ptejte na konkrétní kroky, jen nevím, jestli jsem to pochopil…

    #23708

    Vendulka
    Participant
    Web

    Vzhledem k “nic moc” tématu webu mne různorodost, pozitivita a praktičnost té šablony vyloženě nadchla.
    Já upřímně nevím, kolik úprav proběhlo – tedy až na fakt, že se upravovalo písmo názvů v menu tak, aby se automaticky nevytvářelo počáteční velké písmeno u každého slova. Je dost možné, že se upravoval i font písma (ten v nastavení šablony lze upravit jen u nadpisů, nikoli u menu) a myslím, že i hláška “Komentáře jsou povoleny pouze v rámci Diskuzního fóra”. Ale pochopil jste mne naprosto přesně.
    Ty úpravy ovšem probíhaly v průběhu roku a půl, vždy, když se na něco narazilo.
    Logiku jak najít šablonu ve FTP myslím chápu, jen si nejsem jistá, jak, respektive s čím porovnávat. Každý popis vytvoření odvozené šablony, který jsem kdy našla, byl v angličtině a tu já neumím.

    #23711

    Vendulka
    Participant
    Web

    Měla bych k vysvětlení toho, co se snažím vytvořit, dodat, že jde o child theme

    #23718

    admin
    Keymaster
    Web

    Porovnávat musíte aktuálně použitou verzi šablony. Na webu máte verzi 1.6.3, takže si musíte stáhnout i tuto verzi šablony a s ní soubory na FTP porovnávat (datum změny, velikost souborů, atd). Až vytvoříte odvozenou šablonu (aneb anglicky Child theme), tak budete moci snadno aktualizovat na nejnovější verzi 1.6.4.1. Ale samotný převod asi nebude příliš jednoduchý, došlo patrně ke změnám překladů, načítaných fontů, atd. Ale určitě to zkuste, případně se průběžně ptejte, pokud narazíte na problémy…

    #23722

    Vendulka
    Participant
    Web

    Děkuji. Mám tedy vše potřebné postahováno v PC – tedy originál šablony a tu s úpravami, kterou mám na webu. Dívala jsem se na ten editor PSPad, ale nějak jsem nepochopila logiku jeho užití…

    #23724

    admin
    Keymaster
    Web

    Otevřete si v PSPadu soubor, který si myslíte, že se určitě změnil, nejčastěji style.css či functions.php. Potom použijte menu Nástroje – Rozdíly v textu – Porovnat se souborem. A na disku vyberte stejný soubor, ale z originální neupravované šablony. Použijte tlačítko “Otevřít” a najednou se zobrazí oba soubory vedle sebe a barevně odlišené uvidíte rozdíly…

    #23726

    Vendulka
    Participant
    Web

    A když mám nalezené rozdíly, jak dál postupovat k vytvoření odvozené šablony?

    #23740

    Vendulka
    Participant
    Web

    Proč není možné užívanou šablonu zkopírovat a pouze přejmenovat?

    #23741

    admin
    Keymaster
    Web

    Šablonu je určitě možné zkopírovat a přejmenovat, ale přijdete tak o budoucí aktualizace, takže se s novou verzí WordPressu mohou objevit problémy. Vývojáři totiž šablonu obvykle pravidelně aktualizují a když je nalezena chyba, tak ji opraví. To už ale ve “své” kopii určitě dělat nebudete, takže se budou postupně objevovat problémy. A odvozenou šablonu jste sama navrhla a je to rozhodně lepší řešení…

    Tvorba odvozené šablony ale není zrovna jednoduchá, základ je popsán zde (anglicky). Obecně musíte vytvořit nové speciální soubory style.css a functions.php. A i když tam zatím nedoplníte žádné změny, tak už bude šablona fungovat. Nejsnadnějším způsobem je poté zkopírování změněných souborů do odvozené šablony. Ale mnohem lepším způsobem je pak využití různých akcí a filtrů, které WordPress nabízí a pomocí kterých snadno využijete maximum možného. Ale to už záleží případ od případu, zkuste sem vložit nějakou nalezenou změnu (v případě zdrojového kódu používejte tlačítko CODE), zkusím to vysvětlit na příkladu…

    Duplicitní téma je patrně zde.

    #23742

    Vendulka
    Participant
    Web

    Když dám příklad, tak ve functions.php je:

    if( !function_exists('custom_user_login_redirect') ) {
    function custom_user_login_redirect() {
    $redirect_to = 'http://zivot-s-rs.cz';
    return $redirect_to;
    }
    add_filter('login_redirect','custom_user_login_redirect',10,3);
    }

    Toto je v upravené verzi, zatímco v originále tato část není

    Nebo jiný příklad ze style.css

    V originálu:
    text-transform: capitalize;

    A v upravené verzi:
    text-transform: none;

    #23743

    admin
    Keymaster
    Web

    První část je samostatný malý skript, který prostě jen zkopírujete do souboru functions.php v odvozené šabloně (a pak ho můžete odebrat z rodičovské šablony).

    Příklad ze souboru style.css také jen vložíte do souboru style.css v odvozené šabloně (v originálním souboru ponecháte to, co tam bylo původně). Možná ale bude potřeba zpřesnit definici elementu, pro které je toto pravidlo použito (aby získalo přednost) nebo doplnit !important. Budete to muset vyzkoušet. Pro jaký element je toto pravidlo definováno?

    #23744

    Vendulka
    Participant
    Web

    To, co jsem uváděla u style.css, vypadá v originále celkově takto:

    #breadcrumbs {
     margin: 0em;
     padding: 1em 0 0;
     float: left;
     width: 100%;
     text-transform: none;
     font-size: 0.875em;
    }

    Snažím se právě odchytit, odkud a kam až ty části v kódování kopírovat, tedy čím by měly začínat a čím končit, aby to bylo ve funkčním stavu.
    Pokud je celá tvorba odvozené šablony “jen” o vytvoření konkrétních souborů, do kterých budu doplňovat pouze ty upravené části, tak to bych měla dokázat dát dohromady. Na ten anglický odkaz, který jste uvedl, jsem se dívala již dříve a moc jsem z něj nepochopila.

    #23747

    Vendulka
    Participant
    Web

    Uf, tak jsem vše prošla a překopírovala, založila zkušební web a vložila do něj vytvořenou šablonu. Některé části jsou správně, ale některé ne a nevím, kde to budu lovit. Lze podle konkrétních dotazů na konkrétní věci odhadnout, kde by mohla být chyba?
    A ještě jeden dotaz – v upravené šabloně jsou oproti originálu čtyři soubory, které se, dle názvu, nějakým způsobem dotýkají galerie, ale nevím to 100% (dva jsou .php a dva .bak). Ty jsem do odvozené šablony nekopírovala, tak nějak nevím, zda to není chybou, ale galerii mám formou pluginu a knihovna médií je součást wordpressu.
    Důležité ale pro mne nyní je odhalit chyby. Můžu se ptát?

    #23748

    Vendulka
    Participant
    Web

    Vzhledem k tomu, že doufám v kladnou odpověď, budu konkrétnější:
    Zkušební stránky jsou zde http://childtheme.vyzkousej.net/
    A co je na první pohled špatně:

    1. Přepínání web/administrace se náhle přestěhovalo do pravých widgetů pod název “Základní informace”

    2. Hlásí dvě chyby, jejichž význam neznám – Parse error: Chyba syntaxe a neočekávané '<' v /www/childtheme.vyzkousej.net/childtheme.vyzkousej.net/wp-content/themes/mesocolumn-child/footer.php na řádku 3

    3. Footer menu kamsi zmizelo. Někde musím mít něco špatně, bylo a je fuč, jen nevím, kde chybu hledat.

    4. Přesun rubriky – ačkoliv jsem rubriku uložila do top menu, objevuje se v primare menu včetně podřazené rubriky, což je nesmyslné a nemělo by to tak být.

    5. U šablony se předělávalo automatické psaní velkých písmen u každého slova v menu. Do odvozené verze se mi to sice podařilo uložit, ale u podřazených rubrik to dělá zase.

    Snažím se chyby najít, respektive zda jsem něco nevynechala, ale jestli je špatně kódování, tak si s tím neumím poradit. Ještě dodatek – ten anglický postup je tam i ve slovenštině a to pochopí i lama :)

    #23749

    Vendulka
    Participant
    Web

    Již vyřešeno díky reakci člověka, který je ochoten zaplatit práci programátora. Nečekaný dar dobré duše.

    #23760

    admin
    Keymaster
    Web

    :-)

    Je to ale trochu škoda, protože už to tady nedoděláme… Nemůžete nám sem vložit na ukázku třeba nový soubor functions.php z odvozené šablony, abychom se mohli podívat, jak to nakonec dopadlo? Aby i ostatní čtenáři viděli, jak to má nakonec vypadat?

    Pokud byly v šabloně použity soubory, které tam dříve neexistovaly, tak je můžete zkopírovat do odvozené šablony (a zkontrolovat, zda se tam načítají). Soubory s koncovkou .bak jsou pouze zálohy originálních souborů .php.

    ad 1) To je patrně nějaký defaultní widget originální šablony. Pro odvozenou šablonu si musíte widgety znovu nastavit.

    ad 2) V souboru footer.php jste udělala chybu na řádku číslo 3. Patrně tam nebylo správně zahájen <?php či ukončen ?> nějaký PHP skript.

    ad 3) Menu nikam nezmizelo, ale pokud jste si vytvořila testovací nový web, tak ho ještě nikdo nevytvořil (a ani není z čeho, protože na novém webu nejsou ani potřebné příspěvky a stránky).

    ad 4) Asi zcela nerozumím, ale nevidím na testovacím webu žádný problém, patrně jde pouze o špatně nastavené menu nebo jeho umístění.

    ad 5) Velká písmena řeší výše uvedený kód:

    text-transform: none;

    Na testovacím webu sice nikde velká písmena nevidím, ale pokud se tam zobrazují, tak jste to neupravila všude. Výše uvedený kód jsme řešili pouze pro drobečkovou navigaci, tedy element #breadcrumbs, a patrně bude potřeba upravit ještě další elementy…

    Slovenský návod je bohužel zastaralý a některé informace tam nejsou přesné.

    #23762

    Vendulka
    Participant
    Web

    K tomu, co píšete:
    ad 1) Tam si nejsem jistá, zda to řeší šablona či jiné nastavení, protože v originální verzi jsem sice zrušila Přihlášení/Registrace ve widgetech, ale přestěhovalo se to automaticky do nově vzniklé horní lišty a úpravu vytvořil následně IT technik, který celou lištu zrušil (není mi známo kde úprava proběhla)

    ad 2) Co se týká footer menu, tak si nejsem jistá, kde je špatně provedený zápis. Vypadá takto:

    <?php
    
    </div><!-- FOOTER LEFT END -->
    <?php _e('Copyright &copy;', TEMPLATE_DOMAIN); ?> <?php echo gmdate(__('Y', TEMPLATE_DOMAIN)); ?>. <?php bloginfo('name');?>
    <?php do_action( 'bp_footer_left' ); ?>
    
    <div class="footer-right">
    
    ?>

    ad 3) Menu opravdu zmizelo. Ve spodní části by se měl objevovat pruh, ve kterém je název webu a také se do něj zařazují příspěvky v rubrice, která je pod footer menu zařazena. A ta na zkušebním webu je vytvořena i správně zadána, ale stránka končí bílým prostorem. Dobře je to správné vidět na mém webu http://zivot-s-rs.cz/

    ad 4) Vytvořila jsem pár rubrik, umístila je do různých menu a přiřadila jim i příspěvky. Nezmizelo to úplně, ale z top menu, primare menu i footer menu se vše přestěhovalo jen do primare menu, což je nesmysl.

    ad 5) U těch velkých písmen je zajímavé, že jsou špatně jen u podřazených rubrik (tedy v testovacím webu je jedna podřazená rubrika)

    Přidám tedy ukázku toho, co jsem vytvářela v functions.php

    <?php
    
    if( !function_exists('custom_user_login_redirect') ) {
    function custom_user_login_redirect() {
    $redirect_to = 'http://zivot-s-rs.cz';
    return $redirect_to;
    }
    add_filter('login_redirect','custom_user_login_redirect',10,3);
    }
    
    ?>
    #23770

    admin
    Keymaster
    Web

    ad 1) Nevím, co máte na mysli zrušenou horní lištou, ale přihlašovací informace jsou součástí widgetu “Základní informace”. Pokud “technik” něco rušil, tak to dělal předpokládám právě pomocí odvozené šablony? Ale pořád tam máte starou verzi šablony 1.6.3, takže ji už můžete bez obav aktualizovat?

    ad 2) Špatný zápis je hned na začátku :-) Pokud začínáte PHP skript pomocí <?php, tak musí následovat příkazy z tohoto jazyka a nemůžete tam vkládat HTML v podobě </div><!-- FOOTER LEFT END --> Buď nesmíte začínat PHP nebo zobrazit HTML prostřednictvím příkazu echo, tedy: echo '</div><!-- FOOTER LEFT END -->';

    ad 3) Aha, lišta v zápatí se tam nezobrazuje patrně právě kvůli chybě v bodě 2. Pokud dojde k chybě, tak skript dále nepokračuje…

    ad 4) Bohužel stále netuším, potřeboval bych to vidět na konkrétním příkladu v administraci, pošlete mi prosím přístupy do testovací verze…

    ad 5) Můžete opět uvést konkrétní příklad? Pořád to tam nikde nevidím :-(

    Ta ukázka functions.php z odvozené šablony vypadá v pořádku, ale chtěl jsem spíše vidět, jak ten soubor vypadá po zásahu programátora…

    #23772

    Vendulka
    Participant
    Web

    ad 1) Horní lištou myslím to, co je i zde – vpravo nahoře se mohu odhlásit, vlevo vidím symbol WordPressu atd. To byla část, kterou jsem na webu nepotřebovala, protože nedělám registrace uživatelů přímo na web, na to máme diskuzní fórum :)

    ad 2) Aha, děkuji za radu, to je ukázkový problém, když se pouštím do něčeho, čemu nerozumím.

    ad 4) Podařilo se mi to upravit a donutit být na správném místě, ale zorbrazuje se to i tak “na divoko” – konkrétně to jde vidět na “O čem se šušká” v Top menu. Tam je vidět i ten binec v písmu (ad 5). Přihlašovací údaje Vám mohu zaslat soukromou zprávou.

Aktuálně je na stránce zobrazeno 20 příspěvků - 1. až 20. (z celkem 39)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti