<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>tłumaczenie szablonu | Kurs WordPress od podstaw</title>
	<atom:link href="https://wordpress.aurainweb.pl/tag/tlumaczenie-szablonu/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Stwórz samodzielnie swojego bloga</description>
	<lastBuildDate>Wed, 21 Feb 2024 09:43:22 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">150306349</site>	<item>
		<title>Jak przetłumaczyć motyw lub wtyczkę WordPress</title>
		<link>https://wordpress.aurainweb.pl/jak-przetlumaczyc-dowolny-szablon-wordpress-na-inny-jezyk/</link>
		
		<dc:creator><![CDATA[AuraInWeb]]></dc:creator>
		<pubDate>Wed, 24 Jun 2015 07:49:14 +0000</pubDate>
				<category><![CDATA[Budowa motywu]]></category>
		<category><![CDATA[Inne]]></category>
		<category><![CDATA[kurs]]></category>
		<category><![CDATA[tłumaczenie szablonu]]></category>
		<category><![CDATA[Tutorial WordPress]]></category>
		<guid isPermaLink="false">http://www.aurainweb.pl/?p=6986</guid>

					<description><![CDATA[<p>Ostatnio tworząc nową stronę opartą o WordPress stanęłam przed problemem jakim był brak polskiego języka w motywie.  To dość częsty problem kiedy korzysta się np. z darmowych zasobów WordPress. Motywy &#8230; </p>
<p>Artykuł <a href="https://wordpress.aurainweb.pl/jak-przetlumaczyc-dowolny-szablon-wordpress-na-inny-jezyk/">Jak przetłumaczyć motyw lub wtyczkę WordPress</a> pochodzi z serwisu <a href="https://wordpress.aurainweb.pl">Kurs WordPress od podstaw</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ostatnio tworząc nową stronę opartą o WordPress stanęłam przed problemem jakim był brak polskiego języka w motywie. </p>



<span id="more-6986"></span>



<p>To dość częsty problem kiedy korzysta się np. z  darmowych zasobów WordPress. Motywy jak i wtyczki wyglądają ładnie, ale są praktycznie w całości po angielsku. Spowodowane jest to tym, że Internecie obowiązuje głównie ten język. Bardzo dużo osób na świecie go też zna (może nie jako pierwszy język, ale jako kolejny) i używa.</p>



<p>W efekcie zamiast kolejna strona wyświetla nam się &#8222;Next&#8221; a zamiast autor &#8222;author&#8221;. Czasami może to robić nie ciekawe wrażenie na naszych odbiorcach.</p>



<h2 class="wp-block-heading">Jak przetłumaczyć motyw w WordPress</h2>



<p>W momencie kiedy po raz pierwszy szukałam rozwiązania mojego problemu w języku polskim nie było jeszcze instrukcji (dzięki rosnącej popularność WordPress to się dość szybko zmienia). A przynajmniej takich jakie łatwo było zrozumieć. Większość autorów opisuje jak przetłumaczyć gotowy szablon z przygotowanym już wcześniej plikiem .POT (autor szablonu pomyślał wcześniej by ułatwić tłumaczenie szablonu na inne języki). Niestety szablon, który miałam wykorzystać był takiego pliku pozbawiony dlatego też  musiałam szukać rozwiązania w języku angielskim.</p>



<p>Rozwiązaniem mojego problemu okazał się mały <strong>program&nbsp;Poedit.</strong></p>



<ul>
<li><a href="https://poedit.net/" target="_blank" rel="noreferrer noopener nofollow">https://poedit.net/</a></li>
</ul>



<p>Spotkałam się z tym programem już wcześniej podczas aktualizowania tłumaczenia do innego szablonu.</p>



<h2 class="wp-block-heading">Tłumaczenie z pomocą <strong>Poedit</strong>?</h2>



<p>W WordPress niestety nie możemy od tak stworzyć jednego pliku z tłumaczeniem, wgrać go na serwer i wszystko będzie działać. Szablon wymaga specjalnie przygotowanego pliku, który Poedit potrafi wygenerować. W efekcie w szablonie są dwa pliki .PO i .MO, ten pierwszy to plik edytowalny a ten drugi stanowi skompilowaną jego wersję (odczytywaną przez WordPress).</p>



<h3 class="wp-block-heading">Jak użyć programu Poedit?</h3>



<p>Na początek trzeba pobrać i zainstalować Poedit na komputerze.</p>



<p>Następnie pobrać na ten sam komputer szablon lub wtyczkę (tak Poedit możemy tłumaczyć nie tylko motywy, ale także pluginy), którą chcemy przetłumaczyć i uruchomić poedit.</p>



<p>Gotowe tłumaczenia lub pliki je ułatwiające przeważnie znajdują się w katalogu <strong>languages</strong>.</p>


<div class="wp-block-image wp-image-7324 size-full">
<figure class="aligncenter"><img decoding="async" src="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/1.png?w=810" alt="poedit opcję" class="wp-image-7324" data-recalc-dims="1"/><figcaption class="wp-element-caption">Poedit opcję</figcaption></figure></div>


<p>Teraz wybieramy adekwatną opcję. Jeśli mamy gotowy plik .po dla naszego języka otwieramy go w Poedit i edytujemy. Przeważnie występuje plik wersji angielskiej. Sprawdzić to możemy w szablonie lub wtyczce w katalogu languages.</p>


<div class="wp-block-image size-full wp-image-11700">
<figure class="aligncenter"><img fetchpriority="high" decoding="async" width="600" height="438" data-attachment-id="11700" data-permalink="https://wordpress.aurainweb.pl/jak-przetlumaczyc-dowolny-szablon-wordpress-na-inny-jezyk/attachment/2/" data-orig-file="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/2.png?fit=600%2C438&amp;ssl=1" data-orig-size="600,438" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="wybór języka w Poedit" data-image-description="&lt;p&gt;wybór języka w Poedit&lt;/p&gt;
" data-image-caption="&lt;p&gt;wybór języka w Poedit&lt;/p&gt;
" data-medium-file="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/2.png?fit=300%2C219&amp;ssl=1" data-large-file="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/2.png?fit=600%2C438&amp;ssl=1" src="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/2.png?resize=600%2C438" alt="wybór języka w Poedit" class="wp-image-11700" srcset="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/2.png?w=600&amp;ssl=1 600w, https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/2.png?resize=300%2C219&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /><figcaption class="wp-element-caption">wybór języka w Poedit</figcaption></figure></div>


<h3 class="wp-block-heading">Co w przypadku gdy nie ma gotowego tłumaczenia?</h3>



<p>Jeżeli nie mamy jeszcze tłumaczenia to z belki u góry aplikacji wybieramy plik nowe.</p>



<p>Następnie wybieramy język na jaki chcemy dokonać tłumaczenie. Mamy spory wybór języków jak widać.</p>



<p>Po wybraniu zapisujemy nowy plik poprzez przyciśnięcie niebieskiej dyskietki. Dla języka Polskiego będzie to&nbsp;pl_PL.po nie robimy tego jednak w dowolnym miejscu. Zapisujemy plik w szablonie lub wtyczce w katalogu &#8222;languages&#8221;.</p>



<p>Teraz&nbsp;wybieramy opcję &#8222;Wyodrębnij ze źródła&#8221;. Otworzy się wtedy nowe okno. Przechodzimy &nbsp;w nim do zakładki &#8222;Ścieżki źródeł&#8221; i za pomocą przycisku &#8222;+&#8221; wybieramy katalog &#8222;languages&#8221; a następnie przechodzimy wyżej do głównego katalogu, który też wybieramy.</p>



<p>Jeśli poprawnie wybierzemy pojawi się w polu:</p>



<pre class="wp-block-preformatted">.

/</pre>



<p>W kolejnym kroku przechodzimy do zakładki &#8222;Źródła słów kluczowych&#8221;. Za pomocą dostępnych tam opcji wprowadzamy symbole:</p>



<pre class="wp-block-preformatted">__
_e
_n
_x
_ex
_nx
esc_attr__
esc_attr_e
esc_attr_x
esc_html__
esc_html_e
esc_html_x
_n_noop
_nx_noop
translate_nooped_plural()</pre>


<div class="wp-block-image wp-image-7326 size-full">
<figure class="aligncenter"><img decoding="async" src="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/3.png?w=810" alt="wyszukiwanie znaków" class="wp-image-7326" data-recalc-dims="1"/><figcaption class="wp-element-caption">wyszukiwanie znaków</figcaption></figure></div>


<p>Na koniec wybieramy przycisk &#8222;OK&#8221;. W tym momencie aplikacja przeszuka pliki w poszukiwaniu słów spełniających powyższe warunki np:</p>



<p>__(&#8222;słowo&#8221;, &#8222;szablon&#8221;);</p>



<p>Teraz otworzy się okno z listą słów do przetłumaczenia.</p>



<p>Czasami podczas generowania pliku występują błędy. W moim przypadku wystarczyło wyeliminować pliki z katalogu &#8222;js&#8221; czyli skrypty JavaScript. I jeszcze raz przeprowadzić proces.</p>



<h3 class="wp-block-heading">Uzupełnianie tłumaczeń w Poedit</h3>



<p>W przypadku gdy mamy gotowy już gotowy plik po wybraniu opcji&nbsp; edycji zobaczymy wprowadzone wcześniej tłumaczenia. Z kolei jeżeli dopiero go stworzyliśmy to program podpowiada jak przetłumaczyć niektóre słowa, ale ostatecznie to od nas zależy jak to zrobimy.</p>


<div class="wp-block-image wp-image-7328 size-full">
<figure class="aligncenter"><img decoding="async" src="https://i0.wp.com/wordpress.aurainweb.pl/wp-content/uploads/2015/06/4.png?w=810" alt="znalezione frazy" class="wp-image-7328" data-recalc-dims="1"/><figcaption class="wp-element-caption">znalezione frazy</figcaption></figure></div>


<p>Edycja fraz jak i wprowadzanie nowych jest dość prosta. Klikamy w konkretną linijkę na liście a poniżej otwiera się pole edycji.</p>



<p>Po zakończeniu edycji pliku zapisujemy. Warto też sprawdzić czy wszystko zrobiliśmy poprawnie poprzez przycisk &#8211; &#8222;Weryfikuj&#8221;.</p>



<p><strong>Na koniec pliku wgrywany na serwer do odpowiedniego katalogu (languages).</strong>&nbsp; Warto pamiętać, że WordPress czyta pliki .mo a nie .po. Rolą tych drugich jest bycie źródłem dla generowanego .mo. Dlatego najlepiej na serwerze umieścić oba pliki.</p>



<h2 class="wp-block-heading">Tłumaczenie motywu, wtyczek WordPress z pomocą Wtyczki</h2>



<p>Inną metodą przetłumaczenia motywu WordPress jest użycie wtyczki np. <a href="https://pl.wordpress.org/plugins/loco-translate/">Loco Translate</a>. Wtyczka dostępna jest w bibliotece wtyczek więc jej instalacja zajmuje jedynie chwilę. Po uruchomieniu dodaje się ona jako nowa ikonka w lewym panelu jako jedna z ostatnich.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://i0.wp.com/ps.w.org/loco-translate/assets/banner-772x250.jpg?resize=772%2C250&#038;ssl=1" alt="" data-recalc-dims="1"/></figure>



<p>Wtyczka sama tworzy pliki językowe w odpowiednim miejscu. Wprowadzanie tłumaczeń zaś bardzo przypomina to w Poedit.</p>



<p>Wtyczka daje nam możliwość tłumaczenia zarówno motywów jak i pluginów (wtyczek). Wystarczy jedynie wybrać obiekt, który chcemy przetłumaczyć. <strong>Czasami niektóre szablony nie są przygotowane we właściwy sposób i niestety nie można ich przetłumaczyć! W takim przypadku niestety tłumaczenie jest nie możliwe nawet jeśli przygotujemy potrzebne nam pliki z tłumaczeniem.</strong></p>



<p><strong>Dodatkowe tagi:</strong><br>Jak przetłumaczyć skórki na język polski<br>prosty sposób tłumaczenia (translate) szablonu strony<br>ręczne tłumaczenie szablonu<br>Jak zrobić tłumaczenie wordpress dla skórki wtyczki lub widżetu</p>
<p>Artykuł <a href="https://wordpress.aurainweb.pl/jak-przetlumaczyc-dowolny-szablon-wordpress-na-inny-jezyk/">Jak przetłumaczyć motyw lub wtyczkę WordPress</a> pochodzi z serwisu <a href="https://wordpress.aurainweb.pl">Kurs WordPress od podstaw</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6986</post-id>	</item>
		<item>
		<title>Budujemy własny motyw WordPress cz. 1</title>
		<link>https://wordpress.aurainweb.pl/budujemy-wlasny-szablon-wordpress-cz-1/</link>
		
		<dc:creator><![CDATA[AuraInWeb]]></dc:creator>
		<pubDate>Sat, 13 Jun 2015 09:05:49 +0000</pubDate>
				<category><![CDATA[Budowa motywu]]></category>
		<category><![CDATA[edycja szablonu]]></category>
		<category><![CDATA[tłumaczenie szablonu]]></category>
		<guid isPermaLink="false">http://www.aurainweb.pl/?p=6924</guid>

					<description><![CDATA[<p>Jak zapewne wiedzą osoby odwiedzające stronę na Facebook ruszyłam z kursem tworzenia szablonów z pomocą, których można budować motywy do WordPress. Czyli szaty graficzne. Od razu uprzedzam, że nie będą &#8230; </p>
<p>Artykuł <a href="https://wordpress.aurainweb.pl/budujemy-wlasny-szablon-wordpress-cz-1/">Budujemy własny motyw WordPress cz. 1</a> pochodzi z serwisu <a href="https://wordpress.aurainweb.pl">Kurs WordPress od podstaw</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Jak zapewne wiedzą osoby odwiedzające stronę na Facebook ruszyłam z kursem tworzenia szablonów z pomocą, których można budować <strong>motywy do WordPress</strong>. Czyli szaty graficzne.</p>



<span id="more-6924"></span>



<p>Od razu uprzedzam, że nie będą to bardzo rozbudowane motywy. Jednak ich budowa może przysporzyć trochę problemów. Podczas kolejnych omawianych tematów postaram się jednak dodać do szablonów, motywu dodatkowe opcje.</p>



<h2 class="wp-block-heading">Jakie pliki, szablony wchodzą w skład motywu?</h2>



<p>Na początek warto zacząć od struktury motywu. Podstawowy motyw zawiera więc pliki takie jak:</p>



<ul>
<li>index.php</li>



<li>header.php</li>



<li>footer.php</li>



<li>functions.php</li>



<li>404.php</li>



<li>category.php</li>



<li>page.php</li>



<li>single.php</li>



<li>style.css</li>
</ul>



<p>W skład niego mogą też wchodzić inne pliki jak np.&nbsp;search.php.</p>



<p><strong>Tutorial został podzielony na kilka części:<br></strong>Część 1 znajdziecie poniżej<br><a href="http://wordpress.aurainweb.pl/budujemy-wlasny-szablon-wordpress-cz-2/" target="_blank" rel="noopener noreferrer">Część 2 w kolejnym wpisie</a></p>



<p>Jeśli masz problem z kodem możesz już teraz pobrać fragment gotowego motywu.</p>



<p><a class="btn btn-default" href="http://wordpress.aurainweb.pl/wp-content/uploads/2015/06/newblogtemplate.zip">Pobierz</a></p>



<p>Nazwy katalogów w większości są dowolne chociaż przeważnie występują następujące:</p>



<ul>
<li>css</li>



<li>img lub images</li>



<li>js</li>



<li>include</li>
</ul>



<p>W WordPress większość opcji jest przedefiniowana, co oznacza że zadaniem twórcy motywu jest jedynie utworzenie odpowiedniego pliku, szablonu. Plik ten musi oczywiście posiadać określoną strukturę z od wołaniami do odpowiednich funkcji.</p>



<p>Obecnie większość nowych szablonów wożona jest tak by mogła być responsywna dlatego postanowiłam tworząc ten tutorial mieć to na uwadze. Nie użyje jednak Bootstrap gdyż wymaga on wielu modyfikacji użyje za to bardzo prostego skeleton. Nie posiada on wielu opcji, ale dla małego projektu się sprawdzi. Dodatkowo nie trzeba będzie go mocno modyfikować by uzyskać pożądany efekt.</p>



<p>Tak więc zaczynamy.</p>



<h3 class="wp-block-heading">Co nam będzie potrzebne</h3>



<p>Pobieramy pliki biblioteki CSS <a href="http://getskeleton.com/" target="_blank" rel="noreferrer noopener nofollow">skeleton</a> można je pobrać ze strony http://getskeleton.com/</p>



<p><em>Dodatkowo można pobrać również pliki:</em></p>



<ul>
<li>https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js</li>



<li>http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js</li>



<li>http://getskeleton.com/js/site.js</li>



<li>http://getskeleton.com/css/github-prettify-theme.css</li>



<li>http://getskeleton.com/css/custom.css</li>
</ul>



<p><strong>Pliki .CSS umieszczamy w katalogu css a .JS w js</strong> &#8211; zachowujemy układ jaki ma biblioteka skeleton</p>



<p>Ułatwi to pracę jeżeli nie jesteśmy zaawansowanymi programistami i samodzielnie nie potrafimy tworzyć responsywnych stron (RWD) obecnie to standard. Alternatywnie można pobrać inną bibliotekę dającą RWD jak Bootstrap.</p>



<p>Paczka Skeletona zwiera 2 katalogi CSS i images&nbsp;z plikami oraz plik index.html.</p>



<p>Jeżeli nie posiadamy edytora kodu trzeba go ściągnąć (Notatnik się do tego nie nadaje ze względu na kodowanie strony). Ja wykorzystuje&nbsp;do tych celów najczęściej Notepad++, jest to darmowy program przypominający Notatnik więc obsługa nie powinna sprawić nikomu problemu.</p>



<p>Trzeba również mieć postawionego WordPressa np. na localhost (ja używam serwera XAMPP) lub na serwerze w internecie.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Kiedy już posiadamy to wszystko możemy przystąpić do pracy. Zaczynamy od utworzenia folderu, w którym zbudujemy nasz template a w nim na początek dodajemy:</p>



<ul>
<li>index.php</li>



<li>header.php</li>



<li>footer.php</li>



<li>functions.php</li>



<li>style.css</li>
</ul>



<h4 class="wp-block-heading">header.php &#8211; nagłówek</h4>



<p>Zaczniemy może od zawartości pliku <strong>header.php</strong>. Będzie to nagłówek w naszym motywie a jego szablon przedstawia się następująco: </p>



<pre class="wp-block-preformatted">&lt;!DOCTYPE html&gt;
&lt;!--[if IE 7]&gt;
  &lt;html class="ie ie7" &lt;?php language_attributes(); ?&gt;&gt;
&lt;![endif]--&gt;
&lt;!--[if IE 8]&gt;
  &lt;html class="ie ie8" &lt;?php language_attributes(); ?&gt;&gt;
&lt;![endif]--&gt;
&lt;!--[if !(IE 7) &amp; !(IE 8)]&gt;&lt;!--&gt;
  &lt;html &lt;?php language_attributes(); ?&gt;&gt;
&lt;!--&lt;![endif]--&gt;
&lt;head&gt;
   &lt;meta charset="&lt;?php bloginfo( 'charset' ); ?&gt;"&gt;
   &lt;meta name="viewport" content="width=device-width"&gt;
     &lt;title&gt;&lt;?php wp_title( '|', true, 'right' ); ?&gt;&lt;/title&gt;
   &lt;link rel="profile" href="http://gmpg.org/xfn/11"&gt;
   &lt;link rel="pingback" href="&lt;?php bloginfo( 'pingback_url' ); ?&gt;"&gt;
&lt;?php wp_head(); ?&gt;
  &lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"&gt;&lt;/script&gt;
  &lt;script&gt; 
   $(document).ready(function(){
     $("#flip").click(function(){
       $("#panel").slideToggle("slow");
     });
   });
  &lt;/script&gt;
&lt;/head&gt;
&lt;body &lt;?php body_class(); ?&gt;&gt;
&lt;header id="top" role="banner" class="container"&gt;

  &lt;div class="row"&gt;
   &lt;div class="three columns"&gt;&lt;a href="/"&gt;&lt;img src="&lt;?php echo esc_url( get_template_directory_uri() ); ?&gt;/images/logo.png" alt="Twoje logo" style="width:120px;"/&gt;&lt;/a&gt; 
    &lt;div id="flip"&gt;
      &lt;button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
      &lt;/button&gt;
	&lt;/div&gt;
   &lt;/div&gt;
   &lt;div class="nine columns"&gt;&lt;/div&gt;
   &lt;div class="twelve columns"&gt;
   &lt;hgroup&gt;
				&lt;h3 id="site-title"&gt;
				&lt;a href="&lt;?php echo esc_url( home_url( '/' ) ); ?&gt;" rel="home"&gt;
				&lt;?php bloginfo( 'name' ); ?&gt;&lt;/a&gt; &lt;/h3&gt;
				&lt;p&gt;&lt;?php bloginfo( 'description' ); ?&gt;&lt;/p&gt;
    &lt;/hgroup&gt;
    &lt;nav class="nav-collapse navbar" id="panel"&gt;
      &lt;?php wp_nav_menu( array( 'theme_location' =&gt; 'primary', 'menu_class' =&gt; 'navbar-list', 'menu_id' =&gt; 'primary-menu' ) ); ?&gt;
    &lt;/nav&gt;
   &lt;/div&gt;
  &lt;/div&gt;
&lt;/header&gt;</pre>



<p>Jeśli dobrze się przyjrzeć to w kodzie tym znajduje się deklaracja podstawowych funkcji niezbędnych w szablonie.</p>



<pre class="wp-block-preformatted">&lt;?php wp_head(); ?&gt;</pre>



<p>W miejscy powyższego kodu zostaną umieszczone odnośniki do wszystkich styli CSS oraz skryptów wykorzystanych później.</p>



<pre class="wp-block-preformatted">&lt;!--[if IE 7]&gt;
&lt;html class="ie ie7" &lt;?php language_attributes(); ?&gt;&gt;
&lt;![endif]--&gt;
&lt;!--[if IE 8]&gt;
&lt;html class="ie ie8" &lt;?php language_attributes(); ?&gt;&gt;
&lt;![endif]--&gt;
&lt;!--[if !(IE 7) &amp; !(IE 8)]&gt;&lt;!--&gt;
&lt;html &lt;?php language_attributes(); ?&gt;&gt;
&lt;!--&lt;![endif]--&gt;</pre>



<p>Z kolei ten kod dobiera odpowiednio&nbsp;informację o języku naszego szablonu. Jak widać nie jest to&nbsp;sztywne ustawienie.</p>



<p>Teraz by szablon był bardziej funkcyjny dodamy do niego menu.</p>



<pre class="wp-block-preformatted">&lt;nav class="nav-collapse" id="panel"&gt;
&lt;?php wp_nav_menu( array( 'theme_location' =&gt; 'primary', 'menu_class' =&gt; 'navbar-list', 'menu_id' =&gt; 'primary-menu' ) ); ?&gt;
&lt;/nav&gt;</pre>



<p>oraz</p>



<pre class="wp-block-preformatted">&lt;div id="flip"&gt;&lt;button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"&gt;
  &lt;span class="icon-bar"&gt;&lt;/span&gt;
  &lt;span class="icon-bar"&gt;&lt;/span&gt;
  &lt;span class="icon-bar"&gt;&lt;/span&gt;
&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;</pre>



<p>W całości kod z zastosowaniem formatowania będzie prezentował się tak:</p>



<pre class="wp-block-preformatted">&lt;div class="container"&gt;
  &lt;div class="row"&gt;
   &lt;div class="three columns"&gt;&lt;a href="/"&gt;&lt;img src="&lt;?php echo esc_url( get_template_directory_uri() ); ?&gt;/images/logo.png" alt="SSS" style="width:120px;"/&gt;&lt;/a&gt; 
    &lt;div id="flip"&gt;
      &lt;button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
      &lt;/button&gt;&lt;/div&gt;&lt;/div&gt;
   &lt;div class="nine columns"&gt;
    &lt;nav class="nav-collapse" id="panel"&gt;
      &lt;?php wp_nav_menu( array( 'theme_location' =&gt; 'primary', 'menu_class' =&gt; 'navbar-list', 'menu_id' =&gt; 'primary-menu' ) ); ?&gt;
    &lt;/nav&gt;
   &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
</pre>



<p>Za pomocą zmiennej umieszczonej poniżej można uzyskać adres do aktualnie wykorzystywanego szablonu. Jest to bardzo przydatne gdyż nie musimy podawać całego adresu do np. obrazków umieszczonych w szablonie.</p>



<pre class="wp-block-preformatted">&lt;?php echo esc_url( get_template_directory_uri() ); ?&gt;</pre>



<p><a href="http://www.aurainweb.pl/2015/08/bezposredni-odnosnik-do-strony-glownej-w-wordpress/" target="_blank" rel="noopener noreferrer">Więcej o odnośnikach do strony głównej.</a></p>



<h4 class="wp-block-heading">index.php</h4>



<p>Teraz pora na <strong>index.php</strong></p>



<pre class="wp-block-preformatted">&lt;?php&nbsp;get_header(); ?&gt;

&lt;div class="container"&gt;
  &lt;div class="row"&gt;
     &lt;?php while ( have_posts() ) : the_post() ?&gt;
   &lt;div class="entry-content"&gt;
      &lt;article id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;
        &lt;h1 class="entry-title"&gt;&lt;?php the_title(); ?&gt;&lt;/h1&gt;
        &lt;?php the_content( __( 'Continue reading &lt;span class="meta-nav"&gt;&amp;amp;raquo;&lt;/span&gt;', 'your-theme' ) ); ?&gt;
        &lt;?php wp_link_pages('before=&lt;div class="page-link"&gt;' . __( 'Pages:', 'your-theme' ) . '&amp;amp;after=&lt;/div&gt;') ?&gt;
      &lt;/div&gt;&lt;!-- .entry-content --&gt;
    &lt;/article&gt;
    &lt;?php endwhile; ?&gt;
  &lt;/div&gt; 
&lt;/div&gt;

&lt;?php get_footer(); ?&gt;</pre>



<p>Powyższy kod wypisze stronę główną jeżeli ta będzie statyczną stroną, będziemy mieć jednak problemy z stroną blogową.</p>



<pre class="wp-block-preformatted">&lt;?php&nbsp;get_header(); ?&gt;

&lt;div class="container"&gt;
  &lt;div class="row"&gt;
    &lt;?php if ( is_home() ){ ?&gt;
      &lt;h1 class="entry-title"&gt;Blog&lt;/h1&gt;
   &lt;?php } ?&gt;

&lt;?php while ( have_posts() ) : the_post() ?&gt;
    &lt;div class="entry-content"&gt;
      &lt;article id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;
     &lt;?php if ( is_home() ){ ?&gt;

&lt;div class="imgpost four columns"&gt;&lt;?php the_post_thumbnail(); ?&gt;&lt;/div&gt;
&lt;div class="content nine columns"&gt;
&lt;div class="title"&gt;&lt;h3 class="entry-title"&gt; &lt;?php echo get_the_date( 'Y-m-d' ); ?&gt; | &lt;?php the_title(); ?&gt;&lt;/h3&gt;&lt;/div&gt;
&lt;?php the_content( __( 'Continue reading &lt;span class="meta-nav"&gt;&amp;amp;raquo;&lt;/span&gt;', 'your-theme' ) ); ?&gt;&lt;/div&gt;

&lt;?php } else{ ?&gt;

&lt;h1 class="entry-title"&gt;&lt;?php the_title(); ?&gt;&lt;/h1&gt;
&lt;?php the_content( __( 'Continue reading &lt;span class="meta-nav"&gt;&amp;amp;raquo;&lt;/span&gt;', 'your-theme' ) ); ?&gt;
&lt;?php } ?&gt;
&lt;div class="clear"&gt;&lt;/div&gt;

&lt;?php wp_link_pages('before=&lt;div class="page-link"&gt;' . __( 'Pages:', 'your-theme' ) . '&amp;amp;after=&lt;/div&gt;') ?&gt;
&lt;/div&gt;&lt;!-- .entry-content --&gt;


&lt;div class="clear"&gt;&lt;/div&gt;
&lt;/article&gt;
&lt;?php endwhile; ?&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;?php get_footer(); ?&gt;</pre>



<p>Trochę objaśnień:</p>



<p>Powyższy kod spina w pewnym sensie całą stronę poprzez dodanie odwołań do pozostałych elementów:<br>Dodanie header.php</p>



<pre class="wp-block-preformatted">&lt;?php&nbsp;get_header(); ?&gt;</pre>



<p>Dodanie footer.php</p>



<pre class="wp-block-preformatted">&lt;?php get_footer(); ?&gt;</pre>



<h4 class="wp-block-heading">footer.php</h4>



<p>Kolejnym elementem jest <strong>footer.php</strong></p>



<pre class="wp-block-preformatted">&lt;footer&gt;
&lt;div class="container"&gt;
&lt;div class="clear"&gt;&lt;/div&gt;

&lt;p&gt;Copyright &amp;copy; &lt;/p&gt;
&lt;/div&gt;
&lt;/footer&gt;
&lt;?php wp_footer(); ?&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>



<h4 class="wp-block-heading"><strong>functions.php</strong></h4>



<p>Kiedy mamy już te elementy pora na to by szablon stał się zdatny do użytku. W tym celu tworzymy plik&nbsp;<strong>functions.php</strong> na razie umieścimy w nim tylko kilka elementów.</p>



<pre class="wp-block-preformatted">&lt;?php
add_action( 'wp_enqueue_scripts', 'enqueue_and_register_my_scripts' );
function enqueue_and_register_my_scripts()
{
//register scripts for our theme
wp_register_script('jquery-min', get_stylesheet_directory_uri() . '/js/jquery.min.js');
wp_register_script('run_prettify', get_stylesheet_directory_uri() . '/js/run_prettify.js' );
wp_enqueue_script( 'site', get_stylesheet_directory_uri() . '/js/site.js' );

}

function shape_scripts() {
wp_enqueue_style( 'style', get_stylesheet_uri() );

}
add_action( 'wp_enqueue_scripts', 'shape_scripts' );

add_action( 'after_setup_theme', 'register_my_menu' );
function register_my_menu() {
register_nav_menu( 'primary', __( 'Primary Menu', 'nazwa-szablonu' ) );
register_nav_menu('second-menu', __('Second Menu'));
}
register_nav_menus( array(
'primary' =&gt; __( 'Primary Navigation', 'nazwa-szablonu' ),
) );

add_theme_support( 'post-thumbnails');
function remove_more_link_scroll( $link ) {
$link = preg_replace( '|#more-[0-9]+|', '', $link );
return $link;
}
add_filter( 'the_content_more_link', 'remove_more_link_scroll' );
add_filter( 'the_content_more_link', 'modify_read_more_link' );
function modify_read_more_link() {
return '&lt;div class="more"&gt;&lt;a class="more-link" href="' . get_permalink() . '"&gt;Zobacz&lt;/a&gt;&lt;/div&gt;';
}

function cats_meow($glue) {
$current_cat = single_cat_title( '', false );
$separator = "n";
$cats = explode( $separator, get_the_category_list($separator) );
foreach ( $cats as $i =&gt; $str ) {
if ( strstr( $str, "&gt;$current_cat&lt;" ) ) {
unset($cats[$i]);
break;
}
}
if ( empty($cats) )
return false;

return trim(join( $glue, $cats ));
}

?&gt;</pre>



<p>Każda z tych funkcji pełni inną rolę.</p>



<p>Po zadeklarowaniu poniższej funkcji trzeba utworzyć katalog o nazwie &#8222;js&#8221; i umieścić w nim pliki javascript (kończące się na js).</p>



<pre class="wp-block-preformatted">add_action( 'wp_enqueue_scripts', 'enqueue_and_register_my_scripts' );
function enqueue_and_register_my_scripts()
{
//register scripts for our theme
wp_register_script('jquery-min', get_stylesheet_directory_uri() . '/js/jquery.min.js');
wp_register_script('run_prettify', get_stylesheet_directory_uri() . '/js/run_prettify.js' );
wp_enqueue_script( 'site', get_stylesheet_directory_uri() . '/js/site.js' );

}</pre>



<p>W WordPress skrypty najlepiej dodawać w ten sposób.</p>



<p>Teraz pora na dodanie skryptów CSS. Dzięki tej funkcji po utworzeniu pliku style.css będzie on się automatycznie wczytywał.</p>



<pre class="wp-block-preformatted">function shape_scripts() {
wp_enqueue_style( 'style', get_stylesheet_uri() );

}
add_action( 'wp_enqueue_scripts', 'shape_scripts' );</pre>



<p>Kolejny fragment umożliwia nam dodanie własnego menu co z pewnością ułatwi personalizacje szablonu</p>



<pre class="wp-block-preformatted">add_action( 'after_setup_theme', 'register_my_menu' );
function register_my_menu() {
register_nav_menu( 'primary', __( 'Primary Menu', 'nazwa-szablonu' ) );
register_nav_menu('second-menu', __('Second Menu'));
}
register_nav_menus( array(
'primary' =&gt; __( 'Primary Navigation', 'nazwa-szablonu' ),
) );
</pre>



<p>Teraz pora na dodanie możliwości umaszczenia obrazków do wpisu. Nie jest to obowiązkowe, ale szablon będzie o wiele ciekawszy.</p>



<pre class="wp-block-preformatted">add_theme_support( 'post-thumbnails');</pre>



<p>Następnie przychodzi czas na red more czyli czytaj dalej. W tym przykładzie przetłumaczyłam to na Zobacz.</p>



<pre class="wp-block-preformatted">$link = preg_replace( '|#more-[0-9]+|', '', $link );
return $link;
}
add_filter( 'the_content_more_link', 'remove_more_link_scroll' );
add_filter( 'the_content_more_link', 'modify_read_more_link' );
function modify_read_more_link() {
return '&lt;div class="more"&gt;&lt;a class="more-link" href="' . get_permalink() . '"&gt;Zobacz&lt;/a&gt;&lt;/div&gt;';
}
</pre>



<h4 class="wp-block-heading">style.css</h4>



<p>W ostatnim kroku utworzymy plik <strong>style.css</strong>.</p>



<pre class="wp-block-preformatted">/*
Theme Name: WP test
Theme URI: http://www.aurainweb.pl
Description: Przykładowy szablon.
Author: Aura
Author URI: http://www.aurainweb.pl
Version: 1.0
Tags: responsive, white, scelton

License: Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
License URI: http://creativecommons.org/licenses/by-sa/3.0/

This simple theme was built using the example Sceleton theme "Basic marketing site" found on the Bootstrap
*/

@import url('css/normalize.css');
@import url('css/skeleton.css');
@import url('css/custom.css');</pre>



<p>Poniżej tej deklaracji samodzielnie uzupełnia się plik styli. Warto też pamiętać by dodać pozostałe style w katalogu css</p>



<p>Skeleton i dociągnięte do niego style i skrypty powinien część pracy wykonać za nas. Nie posiada on jednak typowych dla WordPress klas oraz nie ma responsywnego menu dlatego do pliku style.css trzeba dopisać</p>



<pre class="wp-block-preformatted">img{
	max-width: 100%;
	height:auto;
} 
a{
 text-decoration: none;
}
header.container{
	margin-bottom:30px;
}
 
#primary-menu{
 list-style: none;
}
 .navbar-list{
	width:100%;
}
.navbar-list{
	width:100%;
}
.navbar-list li{
	display: inline-block;
	position:relative;
}
.navbar-list li a{
	display: block;
    padding: 21px 10px;
	margin: 0;
}
.navbar-list li ul{
	width: 100%;
    padding: 0;
    margin: 0;
}
.navbar-list li ul li{
	display: none;
    padding: 10px;
    position: absolute;
    top: 40px;
    background: #fff;
    z-index: 100;
    margin: 0;
	border-bottom: 1px dashed #000;
}
.navbar-list li:hover ul li{
	display: inline-block;
}
 .navbar-list li:hover ul li a{
	 padding:15px;
 }
@media screen and (min-width: 750px) {

.nav-collapse ul ul{
	z-index:1;
	}
.nav-toggle {
	display:none;
}
#flip{
	display:none;
	}
#panel{ 
	display: block !important;
}

.home .oferty .column, .home .oferty .columns, .category .oferty .columns{
	margin-left: 2%;
	}
.home .column:first-child, .home .columns:first-child{
	margin-left: 0%;
	}
.navbar-list li:last-child a{
	border-right:none;
	}
}
@media screen and (max-width: 750px) {
#panel {
padding: 5px;
text-align: center;
background:#0a0a0a;
}
#flip {
padding: 5px;
text-align: center; width:30px;
float:right;
}
 
#panel {
padding: 0px;
display: none;
position: relative;
width:100%; z-index: 1;
}
#panel .navbar-list{width:100%; display:block; background:#0a0a0a;}
#panel .navbar-list li {border-bottom:1px solid #fff;}
#panel .navbar-list li a{color:#fff;}
 
.navbar-toggle {
 position: relative;
 float: right;
 padding: 9px 10px;
 margin-top: 8px;
 margin-right: 15px;
 margin-bottom: 8px;
 background-color: transparent;
 background-image: none;
 border: 1px solid #ddd;
 border-radius: 4px;
 width: 45px;
}
.sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0,0,0,0);
 border: 0;
}
.navbar-toggle .icon-bar {
 background-color: #ddd;
 display: block;
 width: 22px;
 height: 3px;
 border-radius: 1px;
 margin-bottom:3px;
}
}</pre>



<p>Warto Pamiętać że:</p>



<p>Theme Name: WP test &#8211; to nazwa motywu<br>Tags: responsive, white, scelton :tagi, hasła do motywu</p>



<p>Masz problem pobierz gotowy <a href="http://wordpress.aurainweb.pl/wp-content/uploads/2015/06/newblogtemplate.zip">fragment szablonu.</a></p>



<p><strong>Pozostałe części motywu pokaże jak utworzyć w kolejnych częściach.</strong></p>



<p><blockquote class="wp-embedded-content" data-secret="cKehrUUnot"><a href="https://wordpress.aurainweb.pl/budujemy-wlasny-szablon-wordpress-cz-2/">Budujemy własny motyw WordPress cz. 2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" title="&#8222;Budujemy własny motyw WordPress cz. 2&#8221; &#8212; Kurs WordPress od podstaw" src="https://wordpress.aurainweb.pl/budujemy-wlasny-szablon-wordpress-cz-2/embed/#?secret=bN9bB5KcJx#?secret=cKehrUUnot" data-secret="cKehrUUnot" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p>Artykuł <a href="https://wordpress.aurainweb.pl/budujemy-wlasny-szablon-wordpress-cz-1/">Budujemy własny motyw WordPress cz. 1</a> pochodzi z serwisu <a href="https://wordpress.aurainweb.pl">Kurs WordPress od podstaw</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6924</post-id>	</item>
	</channel>
</rss>
