<?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/"
	>

<channel>
	<title>Tajniki Wordpressa</title>
	<atom:link href="http://tajnikiwp.pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://tajnikiwp.pl</link>
	<description>Poznaj tajniki najpopularniejszego CMSa</description>
	<lastBuildDate>Fri, 11 Jun 2010 07:50:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Problem z kolejnością stron</title>
		<link>http://tajnikiwp.pl/problem-z-kolejnoscia-stron/</link>
		<comments>http://tajnikiwp.pl/problem-z-kolejnoscia-stron/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 15:03:30 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Podstawy]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=256</guid>
		<description><![CDATA[Zauważyłem, że sporo osób ma problem z ustawieniem kolejności stron w menu w Wordpresie. W związku z tym dziś kilka informacji na ten temat. WordPress jest wyposażony w mechanizm ustawiania kolejności stron w menu. Po wejściu w menu edycji stron klikamy w edycji danej strony. Po prawej stronie w dodatkowych informacjach możemy znaleźć pole Order [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tajnikiwp.pl/wp-content/uploads/2010/04/pagemash_screenshot2.jpg"><img class="alignleft size-full wp-image-259" title="pagemash_screenshot2" src="http://tajnikiwp.pl/wp-content/uploads/2010/04/pagemash_screenshot2.jpg" alt="" width="376" height="190" /></a>Zauważyłem, że sporo osób ma problem z ustawieniem kolejności stron w menu w Wordpresie. W związku z tym dziś kilka informacji na ten temat. WordPress jest wyposażony w mechanizm ustawiania kolejności stron w menu. Po wejściu w menu edycji stron klikamy w edycji danej strony. Po prawej stronie w dodatkowych informacjach możemy znaleźć pole Order (Kolejność), które decyduje o kolejności strony w menu. Wystarczy dla, każdej strony wpisać odpowiedni numer kolejności (im większy tym dalej w menu), aby zmienić kolejność.</p>
<p>Oczywiście powyższy mechanizm jest dość uciążliwy. Jeśli dojdzie jakaś nowa strona i będziemy ją chcieli umieścić między już istniejącymi to będzie trzeba zmienić pole Order dla kilku stron, chyba że przewidzieliśmy to wcześniej i zrobiliśmy większe odstępy. Jest jednak prostszy sposób. Wystarczy doinstalować plugin do ustawiania kolejności stron np. <a href="http://joelstarnes.co.uk/blog/pagemash/">pageMash</a>. Za pomocą tego pluginu możemy metodą przeciągnij upuść ustawiać zarówno kolejność jak i zagłębienie poszczególnych stron i podstron.</p>
<p>W najnowszej wersji WordPress 3.0, która będzie miała już niedługo premierę będzie zaimplementowany mechanizm tworzenia menu, który znacznie ułatwi ustawianie kolejności i nazw elementów znajdujących się w menu.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/problem-z-kolejnoscia-stron/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Automatyczny backup bazy danych</title>
		<link>http://tajnikiwp.pl/automatyczny-backup-bazy-danych/</link>
		<comments>http://tajnikiwp.pl/automatyczny-backup-bazy-danych/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 18:04:01 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Bezpieczeństwo]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=245</guid>
		<description><![CDATA[Tematem związanym z bezpieczeństwem, który zawsze należy się zająć realizując jakiekolwiek przedsięwzięcie w internecie jest backup danych. Niezliczona ilość osób zapominając o tym, by kopiować bazę danych miała później wiele problemów z tym związanych. Wirusy, włamania, awarie &#8211; to zdarzenia losowe, które zdarzają się w najmniej spodziewanych momentach. Dlatego zawsze należy dbać o to, aby [...]]]></description>
			<content:encoded><![CDATA[<p>Tematem związanym z bezpieczeństwem, który zawsze należy się zająć realizując jakiekolwiek przedsięwzięcie w internecie jest backup danych. Niezliczona ilość osób zapominając o tym, by kopiować bazę danych miała później wiele problemów z tym związanych. Wirusy, włamania, awarie &#8211; to zdarzenia losowe, które zdarzają się w najmniej spodziewanych momentach. Dlatego zawsze należy dbać o to, aby nasze dane miały aktualną kopię bezpieczeństwa. Oczywiście zdaję sobie sprawę, że takie kopie to praca, która choć nie zajmuje dużo czasu to jest żmudna i nikomu się nie chce tego robić.</p>
<p>Dlatego właśnie opiszę dziś plugin do WP, który zadba o to, by w wyznaczonych przez nas odstępach czasu zrobić backup za nas. Plugin można ściągnąć tutaj:</p>
<p><a href="http://wordpress.org/extend/plugins/dbc-backup/">http://wordpress.org/extend/plugins/dbc-backup/</a></p>
<p>Jest on banalnie prosty w obsłudze. Po instalacji i aktywacji w menu WP pojawi się nam nowe menu pt: <strong>DB Cron Backup</strong>. Po wejściu w to menu zobaczymy ekran z kilkoma opcjami:</p>
<p><img class="alignleft size-full wp-image-250" title="dbc" src="http://tajnikiwp.pl/wp-content/uploads/2009/09/dbc2.jpg" alt="dbc" width="630" height="252" /></p>
<p>Opcji jest niewiele i konfiguracja nie powinna sprawić Ci dużego problemu. <strong>Export Directory</strong> to katalog, w którym plugin ma zapisywać backupy. Niżej możemy wybrać czy mają one być kompresowane, a jeśli tak to jaką metodą. Później ustalamy co jaki czas skrypt backupujący ma się uruchamiać oraz to co ma się dziać ze starszymi wersjami backupów.</p>
<p>Po zapisaniu skrypt odwali za nas całą czarną robotę i już nie musimy martwić się o nasze dane. Myślę, że konfiguracja jest tak prosta, że nie sprawi Ci najmniejszej trudności. W razie czego możesz zawsze zadać pytanie w komentarzu.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/automatyczny-backup-bazy-danych/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pętla WordPress &#8211; WordPress Loop</title>
		<link>http://tajnikiwp.pl/petla-wordpress-wordpress-loop/</link>
		<comments>http://tajnikiwp.pl/petla-wordpress-wordpress-loop/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 07:00:22 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Tworzenie szablonów]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=227</guid>
		<description><![CDATA[We wcześniejszych wpisach o tworzeniu szablonów  zasygnalizowałem tylko, temat pętli wordpressa. Dziś napiszę co to takiego i jak stosuje się taką pętlę. Dla osób, które znają angielski polecam przeczytać artykuł na ten temat na oficjalnej stronie wordpressa: http://codex.wordpress.org/The_Loop Czym zatem jest ta tajemnicza pętla? Jest to podstawowy składnik każdego szablonu i służy do wyświetlania wszystkich [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-239" title="loop" src="http://tajnikiwp.pl/wp-content/uploads/2009/09/loop-300x238.png" alt="loop" width="300" height="238" />We wcześniejszych wpisach o tworzeniu szablonów  zasygnalizowałem tylko, temat pętli wordpressa. Dziś napiszę co to takiego i jak stosuje się taką pętlę. Dla osób, które znają angielski polecam przeczytać artykuł na ten temat na oficjalnej stronie wordpressa: <a href="http://codex.wordpress.org/The_Loop">http://codex.wordpress.org/The_Loop</a></p>
<p>Czym zatem jest ta tajemnicza pętla? Jest to podstawowy składnik każdego szablonu i służy do wyświetlania wszystkich wpisów, stron archiwów itp. Jeśli WordPress natknie się na pętle podczas przetwarzania szablonu i wyświetlania strony to w zależności od tego na jakiej stronie znajduje się użytkownik wyświetli mu albo listę ostatnich wpisów, albo pojedynczy wpis bądź stronę statyczną itp.</p>
<p>Pętla powinna znajdować się w pliku index.php. Jeśli nie pamiętasz z jakich plików składa się szablon WP to wróć do poprzednich lekcji tworzenia szablonów. WordPress Loop to kilka linijek kodu php i ma taką postać:</p>
<pre lang="php">&lt;?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?&gt;
[tutaj wyświetlanie wpisów]
&lt;?php endwhile; else: ?&gt;
&lt;p&gt;&lt;?php _e('Sorry, no posts matched your criteria.'); ?&gt;&lt;/p&gt;
&lt;?php endif; ?&gt;</pre>
<p>Wszystko co znajduje się w miejscu<strong> [tutaj wyświetlanie wpisów]</strong> jest już zawartością pętli i tylko od nas zależy jak to wykorzystamy. Możemy w tym miejscu odwoływać się do wielu zmiennych takich jak nazwa wpisu, data utworzenia, autor itp. wyświetlać i formatować te dane zgodnie z naszym uznaniem. Przykładowa działająca pętla może wyglądać tak:</p>
<pre lang="php">&lt;?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?&gt;
&lt;h2&gt;&lt;a href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h2
&lt;small&gt;&lt;?php the_time('F jS, Y'); ?&gt;&lt;/small&gt;
&lt;?php endwhile; else: ?&gt;&lt;p&gt;&lt;?php _e('Sorry, no posts matched your criteria.'); ?&gt;&lt;/p&gt;
&lt;?php endif; ?&gt;</pre>
<p>Jak widać między tagami h2 wyświeliliśmy nazwę posta, która linkuje do jego zawartości, a poniżej datę utworzenia wpisu. I to wszystko co na tym etapie powinieneś wiedzieć o pętli WP. Wiesz już jak działa i z wiedzą, którą dziś otrzymałeś będziesz umiał ją zastosować.  Jeśli chcesz poznać pozostałe zmienne jakie można tu wyświelić to polecam przeglądnąć pliki defaultowych szablonów WP. W następnym odcinku kursu przejdziemy już do konkretów i przerobimy darmowy szablon html tak, aby działał pod WP.</p>
<p>Pytania i komentarze jak zwykle mile widziane.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/petla-wordpress-wordpress-loop/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress jako CMS</title>
		<link>http://tajnikiwp.pl/wordpress-jako-cms/</link>
		<comments>http://tajnikiwp.pl/wordpress-jako-cms/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 06:40:58 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Podstawy]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=217</guid>
		<description><![CDATA[Jeden z redaktorów bloga Digging into WordPress poruszył bardzo ciekawy temat w tym wpisie. Mianowicie co zrobić, aby nasz blog WordPress działał jak system zarządzania treścią. Mimo to, że WP to jakby nie patrzeć CMS nie ma on wbudowanych wszystkich niezbędnych opcji, aby w pełni spełniał tę funkcję. Nic nie stoi jednak na przeszkodzie, aby [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-220" title="grey-l" src="http://tajnikiwp.pl/wp-content/uploads/2009/09/grey-l.png" alt="grey-l" width="150" height="150" />Jeden z redaktorów bloga Digging into WordPress poruszył bardzo ciekawy temat w tym <a href="http://www.thinkdave.com/cms-your-wordpress-with-these-10-plugins/">wpisie</a>. Mianowicie co zrobić, aby nasz blog WordPress działał jak system zarządzania treścią. Mimo to, że WP to jakby nie patrzeć CMS nie ma on wbudowanych wszystkich niezbędnych opcji, aby w pełni spełniał tę funkcję. Nic nie stoi jednak na przeszkodzie, aby te funkcje wbudować za pomocą pluginów. Dla osób, które nie znają angielskiego opiszę listę ze strony Digging into WordPress i uzupełnie o swój polski komentarz:</p>
<div style="clear:both;"></div>
<ol>
<li><a href="http://wordpress.org/extend/plugins/page-link-manager/">Page Link Manager</a> – plugin ten instaluje proste menu, które pozwoli Ci wybrać, które strony mają być pokazywane, a które ukryte</li>
<li><a href="http://wordpress.org/extend/plugins/my-page-order/">My Page Order</a> – WP normalnie układa strony w kolejności dodawania lub w zależności od tego jakich parametrów przy wyświetlaniu użył autor templatki. Dzięki temu pluginowi mamy pełną kontrolę nad kolejnością stron.</li>
<li><a href="http://wordpress.org/extend/plugins/widget-logic/">Widget Logic</a> – ten plugin pozwala wyświetlać różne zestawy widgetów, na różnych stronach. Możesz mieć inny zestaw widgetów na stronie głównej, a inny np. na stronie produktu</li>
<li><a href="http://wordpress.org/extend/plugins/breadcrumbs/">Yoast Breadcrumbs</a> – prosty plugin do wyświetlania tzw. &#8220;okruszków chleba&#8221; czyli linków, które pokazują użytkownikowi w jakim miejscu znajduje się na stronie i pozwalają łatwo nawigować po drodze, która przeszedł, aby znaleźć się w danym miejscu.</li>
<li><a href="http://wordpress.org/extend/plugins/search-everything/">Search Everything</a> – standardowo wyszukiwarka WP szuka tylko po wpisach, dzięki tej wtyczce możesz zmusić wyszukiwarką do przeszukiwania także stron.</li>
<li><a href="http://wordpress.org/extend/plugins/analytics360/">Analytics360</a> – statystyki Google Analytics &#8211; ten plugin wyróżnia się od innych tego typu tym, że daje dostęp do statystyk z poziomu panelu admina.</li>
<li><a href="http://wordpress.org/extend/plugins/wp-cms-post-control/">WP-CMS Post Control</a> – zwiększa kontrolę nad opcjami edycji wpisów. Pozwala w pełni skonfigurować to do czego mają dostęp autorzy wpisów, dzięki czemu edycja wygląda bardziej jak w zwykłym CMSie.</li>
<li><a href="http://wordpress.org/extend/plugins/widgets-reloaded/">Widgets Reloaded</a> – plguin, który uaktualnia listę standardowych widgetów i dodaje im wiele nowych funkcjonalności &#8211; sam zobacz!</li>
<li><a href="http://wordpress.org/extend/plugins/ozh-admin-drop-down-menu/">Ozh’ Admin Drop Down Menu</a> – ten plugin zmienia sposób wyświetlania menu w panelu admina z listy po lewej na menu typu drop down na górze panelu dzięki czemu mamy łatwiejszy dostęp do poszczegółnych opcji.</li>
</ol>
<p>Możesz oczywiście uzupełnić tą listę według własnych potrzeb, albo usunąć z niej zbędne wtyczki.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/wordpress-jako-cms/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Instalacja pluginu do stronicowania w szablonie</title>
		<link>http://tajnikiwp.pl/instalacja-pluginu-do-stronicowania-w-szablonie/</link>
		<comments>http://tajnikiwp.pl/instalacja-pluginu-do-stronicowania-w-szablonie/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 18:34:20 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Tworzenie szablonów]]></category>
		<category><![CDATA[Zaawansowane]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=204</guid>
		<description><![CDATA[Czasem istnieje potrzeba umieszczenia w tworzonym przez nas szablonie pluginu do stronicowania postów w miejsce dobrego, ale już wysłużonego stronicowania w postaci linków poprzenie wpisy, następne wpisy. Oczywiście nic nie stoi na przeszkodzie, żeby użytkownik sam doinstalował sobie taką wtyczkę. Mimo to bardziej elegenackim i przyjaznym rozwiązaniem jest instalacja w samym szablonie. Jak to zatem [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-213" title="pagination" src="http://tajnikiwp.pl/wp-content/uploads/2009/08/pagination-300x211.jpg" alt="pagination" width="300" height="211" />Czasem istnieje potrzeba umieszczenia w tworzonym przez nas szablonie pluginu do stronicowania postów w miejsce dobrego, ale już wysłużonego stronicowania w postaci linków poprzenie wpisy, następne wpisy. Oczywiście nic nie stoi na przeszkodzie, żeby użytkownik sam doinstalował sobie taką wtyczkę. Mimo to bardziej elegenackim i przyjaznym rozwiązaniem jest instalacja w samym szablonie. Jak to zatem zrobić?<span id="more-204"></span>Możemy użyć np. pluginu WP-PageNavi stworzonego przez Lestera Chana. Możesz go sściągnąć z <a href="http://wordpress.org/extend/plugins/wp-pagenavi/">tej strony</a>. Jeśli już ściągniesz archiwum to wgraj pliki wp-pagenavi.php i wp-pagenavi.css do katalogu twojego szablonu.</p>
<h3>Edycja plików szablonu</h3>
<p>Otwórz plik, w którym chcesz użyć wtyczki do stronnicowania. Przeważnie będzie to plik index.php lub/i plik archives.php i search.php, które odpowiadają za wyświetlanie listy wpisów. Znajdź w tych plikach taki oto kod:</p>
<pre lang="xhtml-strict">&lt;div&gt;
	&lt;div&gt;&lt;?php next_posts_link('Previous entries') ?&gt;&lt;/div&gt;
	&lt;div&gt;&lt;?php previous_posts_link('Next entries') ?&gt;&lt;/div&gt;
&lt;/div&gt;</pre>
<p>i zatąp go takim kodem:</p>
<pre lang="php">&lt;?php
include('wp-pagenavi.php');
if(function_exists('wp_pagenavi')) { wp_pagenavi(); }
?&gt;</pre>
<p>W taki oto sposób zamieniliśmy zwykłe stronnicowanie na nowe w postaci numerów stron. Kiedy odświeżysz stronę to nic się nie stanie ponieważ nasz plugin nie jest jeszcze dostosowany do działania w szablonie. Aby wszystko działało jak należy musisz otworzyć plik wp-pagenavi.php i znaleźć w nim taką linię kodu:</p>
<pre lang="php">function wp_pagenavi($before = '', $after = '') {
        global $wpdb, $wp_query;</pre>
<p>Zastąp go takim kodem:</p>
<pre lang="php">function wp_pagenavi($before = '', $after = '') {
	global $wpdb, $wp_query;
        pagenavi_init(); //Calling the pagenavi_init() function</pre>
<p>Po odświeżeniu strony już wszystko powinno działać jak należy. Wystarczy jeszcze dodać plik css do naszego szablonu, aby móc kontrolować wygląd listy stron. W nagłówku pod odwołaniem do głównego szablonu css dodaj taką linię:</p>
<pre lang="xhtml-strict">&lt;link rel="stylesheet" href="&lt;?php echo TEMPLATEPATH.'/wp-pagenavi.css';?&gt;" type="text/css" media="screen" /&gt;</pre>
<p>Możesz już formatować wygląd listy stronnicowania poprzez szablon pagenavi.css.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/instalacja-pluginu-do-stronicowania-w-szablonie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tworzenie szablonów dla WordPressa – podstawy część II</title>
		<link>http://tajnikiwp.pl/tworzenie-szablonow-dla-wordpressa-%e2%80%93-podstawy-czesc-ii/</link>
		<comments>http://tajnikiwp.pl/tworzenie-szablonow-dla-wordpressa-%e2%80%93-podstawy-czesc-ii/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 15:51:14 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Tworzenie szablonów]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=186</guid>
		<description><![CDATA[W poprzednim wpisie na temat tworzenie szablonów dowiedziałeś się jak utworzyć dwa podstawowe pliki templatki jakimi są index.php oraz style.css. Dziś napiszę w jaki sposób podzielić plik index.php na kilka logicznych fragmentów, tak aby łatwiej modyfikowało się szablon i dodawało poszczególne funkcjonalności. Szablon każdej strony składa się z kilku podstawowych elementów takich jak nagłówek, &#8220;ciało [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-152" title="szablony_wordpress" src="http://tajnikiwp.pl/wp-content/uploads/2009/08/szablony_wordpress.jpg" alt="szablony_wordpress" width="300" height="203" />W poprzednim wpisie na temat tworzenie szablonów dowiedziałeś się jak utworzyć dwa podstawowe pliki templatki jakimi są index.php oraz style.css. Dziś napiszę w jaki sposób podzielić plik index.php na kilka logicznych fragmentów, tak aby łatwiej modyfikowało się szablon i dodawało poszczególne funkcjonalności.</p>
<p>Szablon każdej strony składa się z kilku podstawowych elementów takich jak nagłówek, &#8220;ciało dokumentu&#8221;, pasek boczny, stopka itp. Oczywiście każda strona jest inna i ten schemat nie zawsze się sprawdza. Mimo to w Wordpresie ten podział został ujęty w podobny sposób i każdy element strony zawiera się w osobnym pliku. I tak mamy pliki:</p>
<p><strong>1) header.php &#8211; nagłówek</strong></p>
<p><strong>2) sidebar.php &#8211; pasek boczny</strong></p>
<p><strong>3) footer.php &#8211; stopka</strong></p>
<p>Plik<strong> index.php</strong> zawiera natomiast  z reguły cała resztę czyli ciało dokumentu i kod odpowiedzialny za wyświetlanie postów, archiwum, stron statycznych itp. Plik ten pobiera także wszystkie inne elementy strony za pomocą kilku linii php. Za chwilę opiszę jak się to robi. Wróćmy zatem do naszego poprzedniego przykładu i podzielmy nasz przykładowy szablon strony na poszczególne pliki. To jak dokładnie będzie wyglądał ten podział zależy w dużej mierze od Ciebie i Twoich potrzeb &#8211; mimo to można przyjąć ogólną regułę, że podział przebiega w granicach wyznaczonych przez poszczególne elementy blokowe szablonu czyli element <strong>header</strong> (który jest naszym nagłówkiem) przenosimy do pliku <strong>header.php</strong> itp.</p>
<p>Przykładowy kod do, którego dodałem poszczególne sekcje wygląda tak:</p>
<pre lang="xhtml-strict">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;Przykładowy szablon&lt;/title&gt;
&lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt;
&lt;link rel="stylesheet" href="&lt;?php bloginfo(’stylesheet_url’); ?&gt;" type="text/css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="header"&gt;Nasz nagłówek&lt;/div&gt;
&lt;div id="content"&gt;Nasz główny content&lt;/div&gt;
&lt;div id="sidebar"&gt;Pasek boczny&lt;/div&gt;
&lt;div id="footer"&gt;Stopka&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Oczywiście możesz dowolnie ostylować taką stronę. Chodzi tutaj o pokazanie samej struktury szablonu. Moglibyśmy poniższy kod zapisać po prostu do pliku index.php i będzie on działał jako szablon. Mimo to, dla późniejszej wygody i po prostu porządku podzielimy cały kod na fragmenty.</p>
<p>Tak będzie wyglądał nasz plik <strong>header.php</strong>:</p>
<pre lang="xhtml-strict">&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;Przykładowy szablon&lt;/title&gt;
&lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt;
&lt;link rel="stylesheet" href="&lt;?php bloginfo(’stylesheet_url’); ?&gt;" type="text/css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="header"&gt;Nasz nagłówek&lt;/div&gt;</pre>
<p>Jak widzisz wkleiłem tu całość od początku dokumentu do końca nagłówka, w którym później możemy umieścić logo serwisu itp. Plik <strong>sidebar.php</strong> będzie wyglądał tak:</p>
<pre lang="xhtml-strict">&lt;div id="sidebar"&gt;Pasek boczny&lt;/div&gt;</pre>
<p>natomiast plik <strong>footer.php</strong> jak łatwo się domyślić będzie zawierał w sobie dalszą część strony do końca dokumentu:</p>
<pre lang="xhtml-strict">&lt;div id="footer"&gt;Stopka&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Mamy już stronę podzieloną na sekcję, które teraz znajdują się w osobnych plikach. Możesz je wgrać na serwer. Ostatnia czynność jaką musimy wykonać, aby wszystko działało to w pliku index.php podmienić usunięty kod na pojedyncze linie php, które pobiorą te fragmenty z osobnych plików, które właśnie utworzyliśmy.</p>
<p>Kod<strong> index.php</strong> będzie wyglądał zatem tak:</p>
<pre lang="php">&lt;?php get_header(); ?&gt;
&lt;div id="content"&gt;Nasz główny content&lt;/div&gt;
&lt;?php get_sidebar(); ?&gt;
&lt;?php get_footer(); ?&gt;</pre>
<p>I to wszystko. Jak widzisz łatwo zapamiętać poszczególne kody php służące do pobierania pozostałych plików szablonu. W dalszej kolejności będziemy edytować jeszcze plik <strong>index.php</strong>, tak aby wyświetlał poszczególne wpisy. Odbywa się to przy wykorzystaniu tzw. <strong>wordpress loop (pętli wordpress)</strong>. W kolejnych wpisach opiszę dokładnie jak zbudowana jest taka pętla i jakie dokładnie spełnia funkcje. Pozostałe fragmenty oczywiście także wyposażymy w dodatkowe funkcjonalności np. pasek boczny będzie mógł wyświetlać <strong>widgety </strong>czyli specjalne moduły spełniające wyspecjalizowane funkcję takie jak galeria, lista komentarzy itp.</p>
<p>Ostatnia rzecz jaką dziś jeszcze zrobimy to dodanie do plików nagłówka i stopki specjalnych kodów, które pobiorą dane wysyłane przez WP, które muszą się znaleźć w tych miejscach. W taki sposób działają różne pluginy, które muszą dodać swój kod do naszego szablonu. Zatem plik <strong>header.php</strong> w ostatecznej wersji będzie wyglądał tak:</p>
<pre lang="php">&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;Przykładowy szablon&lt;/title&gt;
&lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt;
&lt;link rel="stylesheet" href="&lt;?php bloginfo(’stylesheet_url’); ?&gt;" type="text/css" /&gt;
&lt;?php wp_head(); ?&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="header"&gt;Nasz nagłówek&lt;/div&gt;</pre>
<p>Dodałem linijkę <strong>&lt;?php wp_head(); ?&gt;</strong> W tym miejscu wordpress będzie wstawiał swój kod. Na razie nie musimy dokładnie wiedzieć w czym rzecz &#8211; ważne, że bez tego niektóre pluginy nie będą działały oraz to, że kod ten musi znajdować się w sekcji head naszej strony.</p>
<p>Analogicznie plik <strong>footer.php</strong> będzie miał taką postać:</p>
<pre lang="php">&lt;div id="footer"&gt;Stopka&lt;/div&gt;
&lt;?php wp_footer(); ?&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Dodatkowa linia powinna znajdować się przed tagiem body i ma podobne znaczenie co ta w pliku header.php. Po wgraniu na serwer szablon powinien działać tak samo jakby znajdował się w jednym pliku. Mimo to, że nie widać różnicy w działaniu to poczyniliśmy duży krok naprzód w projekcie naszej templatki wordpress. Komentarze jak zwykle mile widziane.</p>
<p><a href="http://tajnikiwp.pl/petla-wordpress-wordpress-loop/">czytaj dalszy ciąg kursu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/tworzenie-szablonow-dla-wordpressa-%e2%80%93-podstawy-czesc-ii/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Wielojęzyczna strona w Wordpresie</title>
		<link>http://tajnikiwp.pl/wielojezyczna-strona-w-wordpresie/</link>
		<comments>http://tajnikiwp.pl/wielojezyczna-strona-w-wordpresie/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 18:31:07 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Zaawansowane]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=176</guid>
		<description><![CDATA[Sporo osób ma problem z utworzeniem w WP strony w kilku językach. Postanowiłem więc opisać jeden ciekawy sposób, który pozwoli nam łatwo stworzyć taką stronę. Możemy oczywiście zastosować w tym celu pluginy takie jak xLanguage lub qTranslate. Rozwiązanie to ma jednak kilka wad &#8211; przeważnie wtyczki te nie działają z innymi pluginami, które modyfikują coś [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-180" title="Flags2" src="http://tajnikiwp.pl/wp-content/uploads/2009/08/Flags2-300x228.jpg" alt="Flags2" width="300" height="228" />Sporo osób ma problem z utworzeniem w WP strony w kilku językach. Postanowiłem więc opisać jeden ciekawy sposób, który pozwoli nam łatwo stworzyć taką stronę. Możemy oczywiście zastosować w tym celu pluginy takie jak xLanguage lub qTranslate. Rozwiązanie to ma jednak kilka wad &#8211; przeważnie wtyczki te nie działają z innymi pluginami, które modyfikują coś w treści poszczególnych stron. Obsługa ich też nie jest zbyt efektywna. Zamiast tego można zrobić tak:<span id="more-176"></span></p>
<p>1. Tworzymy kilka instalacji WordPressa w jednej bazie danych dla poszczególnych języków. Różnią się one tylko i wyłącznie prefiksem. Np. język defaultowy ma prefiks wp_, a np. dodatkowy język powiedzmy niemiecki wpde_. Pliki nie są w żaden sposób duplikowane.</p>
<p>Bazę można sobie skopiować po utworzeniu defaultowej wersji i ustawieniu wszystkiego i zmienić tylko prefiks.</p>
<p>2. Dalej będziemy potrzebowali dodatkowej subdomeny dla drugiego języka w postaci np. de.nazwastrony.pl &#8211; musi ona być skierowana na ten sam katalog co domena główna. Teraz dodajemy do pliku config.php taki kod, a w zasadzie zamieniamy linijkę:</p>
<pre lang="php">$table_prefix  = 'wp_';</pre>
<p>na:</p>
<pre lang="php">$subdomain = substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], '.'));
if ($subdomain == 'de')
{
$table_prefix = 'wpde_';
}
else
{
$table_prefix = 'wp_';
}</pre>
<p>Powyższy kod robi jedną prostą operację. Wykrywa czy wejście na stronę nastąpiło z subdomeny &#8211; jeśli tak to zmienia prefiks z wp_ na wpde_ dzięki czemu na stronie zacznie się pojawiać treść z bazy w innym języku.</p>
<p>3. Wystarczy jeszcze tylko w kodzie templatki dodać flagi podlinkowane odpowiednio do adresu z subdomeną i bez subdomeny i wszystko działa.</p>
<p>4. Aha, w konfiguracji WP należy jeszcze zmienić w tej dodatkowej wersji językowej adres bloga na adres z prefiksem.</p>
<p>Dzięki takiej operacji mamy  osobny panel dla każdej wersji językowej w zależności z której domeny wejdziemy do wp-admin.  To rozwiązanie ma  swoje wady i zalety. Wadą na pewno jest konieczność tworzenia drugiej bazy. Zaleta jest taka, że mamy osobną edycję do każdego języka i nic nam się nie miesza. Możemy także w każdej wersji językowej zmodyfikować szablon, co może przydać się np. do zmiany odnośnika &#8220;read more&#8221; itp. Dodatkowa wersja językowa może się różnić także kategoriami, stronami itp. &#8211; w zależności od tego czy mamy tłumaczenie do danej strony czy nie możemy ją np. całkiem wyłączyć lub zmienić na inną.</p>
<p>Sposób ten zastosowałem na stronie mojej klientki, gdyż żaden plugin stworzony do tego celu nie chciał działać jak należy. Mam nadzieję, że komuś się to przyda. Komentarze jak zwykle mile widziane.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/wielojezyczna-strona-w-wordpresie/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Zabezpiecz WordPressa przed zresetowaniem hasła</title>
		<link>http://tajnikiwp.pl/zabezpiecz-wordpressa-przed-zresetowaniem-hasla/</link>
		<comments>http://tajnikiwp.pl/zabezpiecz-wordpressa-przed-zresetowaniem-hasla/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 09:19:50 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Bezpieczeństwo]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=157</guid>
		<description><![CDATA[Niedawno została odkryta luka w najnowszej wersji WordPressa, która pozwala na zresetowanie hasła administratora bez jego wiedzy. Na szczęście szybko pojawiły się informacje w jaki sposób naprawić ten błąd. Wystarczy wyedytować plik wp-login.php znajdujący się w katalogu głównym bloga i znaleźć linię 190, w której znajduje się taki kod: if (empty($key)) Należy zamienić go na: [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-168" title="wp_bezpieczenstwo" src="http://tajnikiwp.pl/wp-content/uploads/2009/08/wp_bezpieczenstwo1.jpg" alt="wp_bezpieczenstwo" width="300" height="198" />Niedawno została odkryta luka w najnowszej wersji WordPressa, która pozwala na zresetowanie hasła administratora bez jego wiedzy. Na szczęście szybko pojawiły się informacje w jaki sposób naprawić ten błąd.<span id="more-157"></span></p>
<p>Wystarczy wyedytować plik wp-login.php znajdujący się w katalogu głównym bloga i znaleźć <strong>linię 190</strong>, w której znajduje się taki kod:
<div style="clear:both;"></div>
<pre lang="php">if (empty($key))</pre>
<p>Należy zamienić go na:</p>
<pre lang="php">if(empty($key) || is_array($key))</pre>
<p>Po tym zabiegu możemy spać spokojnie. Sposób naprawy znalazłem na stronie: <a href="http://www.wprecipes.com/prevent-password-reset-hacking-on-your-wordpress-blog">http://www.wprecipes.com/prevent-password-reset-hacking-on-your-wordpress-blog</a></p>
<p>Dla osób nieobeznanych z edycją plików php podaje link do poprawionego pliku, wystarczy stary plik podmienić na ten <a href="http://tajnikiwp.pl/files/wp-login.zip">nowy</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/zabezpiecz-wordpressa-przed-zresetowaniem-hasla/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Szablony WordPress &#8211; katalog</title>
		<link>http://tajnikiwp.pl/szablony-wordpress-katalog/</link>
		<comments>http://tajnikiwp.pl/szablony-wordpress-katalog/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 07:03:14 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Templatki wordpress]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=148</guid>
		<description><![CDATA[Rozpoczynam dziś wpis, który będzie miał na celu skatalogowanie stron zawierających ciekawe i profesjonalne szablony wordpressa. Będą tu strony zarówno z darmowymi szablonami jak  i templatkami premium. Jeśli według Ciebie brakuje na tej liście jakiejś strony to wpisz ją w komentarzu &#8211; lista będzie systematycznie uzupełniana i korygowana. Darmowe szablony wordpress: - http://wordpress.org/extend/themes/ - http://topwpthemes.com/ [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-152" title="szablony_wordpress" src="http://tajnikiwp.pl/wp-content/uploads/2009/08/szablony_wordpress.jpg" alt="szablony_wordpress" width="300" height="203" />Rozpoczynam dziś wpis, który będzie miał na celu skatalogowanie stron zawierających ciekawe i profesjonalne <strong>szablony wordpressa. </strong>Będą tu strony zarówno z darmowymi szablonami jak  i templatkami premium. Jeśli według Ciebie brakuje na tej liście jakiejś strony to wpisz ją w komentarzu &#8211; lista będzie systematycznie uzupełniana i korygowana.<span id="more-148"></span></p>
<p><strong>Darmowe szablony wordpress:</strong></p>
<p><strong>- </strong><a href="http://wordpress.org/extend/themes/">http://wordpress.org/extend/themes/</a></p>
<p>- <a href="http://topwpthemes.com/">http://topwpthemes.com/</a></p>
<p>- <a href="http://wordpressthemesbase.com/">http://wordpressthemesbase.com/</a></p>
<p>- <a href="http://www.nattywp.com/index.php?order=added">http://www.nattywp.com/index.php</a></p>
<p>- <a href="http://www.wpthemespot.com/category/free-wordpress-themes/">http://www.wpthemespot.com/</a></p>
<p><strong>Szablony premium (płatne):</strong></p>
<p><strong>- </strong><a href="http://themeforest.net?ref=chaos23">http://themeforest.net/</a></p>
<p><strong>- </strong><a href="http://www.premiumwp.com/">http://www.premiumwp.com/</a></p>
<p>- <a href="http://premiumthemes.net/">http://premiumthemes.net/</a></p>
<p>- <a href="http://www.woothemes.com/">http://www.woothemes.com/</a></p>
<p>- <a href="http://www.elegantthemes.com/">http://www.elegantthemes.com/</a></p>
<p>- <a href="http://www.nattywp.com/">http://www.nattywp.com/</a></p>
<p>Jak widzisz mając umiejętność tworzenia szablonów w WP można całkiem nieźle na tym zarobić. Jeśli jeszcze nie potrafisz tworzyć własnych templatek to z pewnością zainteresuje Cię  seria wpisów na blogu, która porusza to zagadnienie.  Naukę możesz rozpocząć<a href="http://tajnikiwp.pl/templatki-wordpress-wprowadzenie/"> tutaj</a>.</p>
<p>Jeśli chciałbyś dodać tutaj jakąś stronę &#8211; swoją lub tak, którą uważasz za ciekawą to zostaw komentarz.</p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/szablony-wordpress-katalog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tworzenie szablonów dla WordPressa &#8211; podstawy część I</title>
		<link>http://tajnikiwp.pl/tworzenie-szablonow-dla-wordpressa-podstawy/</link>
		<comments>http://tajnikiwp.pl/tworzenie-szablonow-dla-wordpressa-podstawy/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 15:27:13 +0000</pubDate>
		<dc:creator>Grzegorz Serwin</dc:creator>
				<category><![CDATA[Tworzenie szablonów]]></category>

		<guid isPermaLink="false">http://tajnikiwp.pl/?p=78</guid>
		<description><![CDATA[Dziś przeszukując istniejące strony na temat tworzenia szablonów wordpress znalazłem artykuł, w którym autor twierdzi, że największą wadą WP jest właśnie zawiły system tworzenia templatek. Zdziwiło mnie trochę to stwierdzenie &#8211; uważam bowiem, że system jest dość prosty i można się go bardzo szybko nauczyć. W tym wpisie zacznę ten temat i będę go rozwijał [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-107" title="screenshot" src="http://tajnikiwp.pl/wp-content/uploads/2009/08/screenshot.png" alt="tworzenie szablonów wordpress" width="300" height="225" />Dziś przeszukując istniejące strony na temat <strong>tworzenia szablonów wordpress</strong> znalazłem artykuł, w którym autor twierdzi, że największą wadą WP jest właśnie zawiły system tworzenia templatek. Zdziwiło mnie trochę to stwierdzenie &#8211; uważam bowiem, że system jest dość prosty i można się go bardzo szybko nauczyć. W tym wpisie zacznę ten temat i będę go rozwijał w kolejnych postach. Kiedy skończysz lekturę i wykonasz zawarte tu ćwiczenia będziesz już potrafił zmusić WordPressa do tego, żeby zobaczył twój szablon i wyświetlał go na stronie. W kolejnych częściach dowiesz się z kolei jak wyświetlać listę stron, kategorii, poszczególne posty itp.<span id="more-78"></span></p>
<p>Zaczniemy od tego, że wszystkie szablony w WP znajdują się w katalogu wp-content/themes i są pogrupowane w podkatalogi. Zaraz po instalacji w katalogu tym znajdują się dwa szablony: classic i default. Możesz podglądnąć ich pliki, żeby zobaczyć jak są skonstruowane.</p>
<p>Każdy szablon składa się z kilku plików jednak do działania szablonu niezbędne są tylko dwa: index.php oraz style.css. Od nich zatem zaczniemy budowę nowego szablonu.</p>
<p>Utwórz w edytorze, z którego korzystasz plik index.php i wklej do niego taki kod:</p>
<pre lang="html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;Przykładowy szablon&lt;/title&gt;
&lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt;
&lt;link rel="stylesheet" href="&lt;?php bloginfo('stylesheet_url'); ?&gt;" type="text/css" /&gt;
&lt;/head&gt;
&lt;body&gt;
  Witaj Świecie!
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Jak widać jest to zwykły szablon strony xhtml. Jedyna różnica polega na tym, że zamiast zwykłego odwołania do pliku css mamy tu linijke kodu php <strong>&lt;?php bloginfo(&#8216;stylesheet_url&#8217;); ?&gt;</strong>, który jest odpowiedzialny za załadowanie standardowego pliku css dla szablonu &#8211; pliku style.css. Utwórz teraz plik style.css i umieść w jego treści taki kod:</p>
<pre lang="css">/*
 Theme Name: Nowy szablon
 */</pre>
<p>Jak widzisz plik css musi zawierać tylko jedną linijkę, która definiuje jego nazwę. To wystarczy żeby wyświetlił się na liście szablonów w panelu zarządzania.</p>
<p>Utwórzy nowy folder w katalogu <strong>wp-themes/content</strong> np. o nazwie szablon i wgraj do niego plik index.php oraz style.css. Wejdź do panelu zarządzania blogiem i do menu Apperance oraz Themes. Szablon już powinien być widoczny na liście i można przełączyć wyświetlanie strony na niego. To wszystko. Proste, prawda? Oczywiście nie jest to jeszcze w pełni funkcjonalny szablon i do tego, aby działał jak należy jeszcze długa droga.</p>
<p>Zróbmy jeszcze jeden krok naprzód i zmodyfikujmy plik index.php tak, aby na pasku przeglądarki wyświetlał prawidłowy tytuł bloga:</p>
<pre lang="html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
&lt;head&gt;
&lt;title&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/title&gt;
&lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt;
&lt;link rel="stylesheet" href="&lt;?php bloginfo('stylesheet_url'); ?&gt;" type="text/css" /&gt;
&lt;/head&gt;
&lt;body&gt;
  Witaj Świecie!
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Zamiast tytułu wpisanego na sztywno dodałem kod php w postaci: <strong>&lt;?php bloginfo(&#8216;name&#8217;); ?&gt;</strong> Kod zgodnie z tym co widać pobierze informacje o blogu, a konkretnie jego nazwę i wyświetli jako tytuł. W taki sam sposób dodajemy wyświetlanie listy stron, kategorii itd. Myślę, że taki zasób wiedzy na początek zupełnie wystarczy, aby nie przeładować Twojej pamięci. Będę sukcesywnie zaznajamiał Cię z kolejnymi tajnikami tworzenia szablonów w kolejnych wpisach.</p>
<p><a href="http://tajnikiwp.pl/tworzenie-szablonow-dla-wordpressa-%E2%80%93-podstawy-czesc-ii/">czytaj dalszy ciąg kursu&gt;&gt;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tajnikiwp.pl/tworzenie-szablonow-dla-wordpressa-podstawy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
