<?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>Vivee - wordpress, webmastering, grafika i fotografia &#187; Inne tutoriale wordpressowe</title>
	<atom:link href="http://vivee.info/category/tutoriale/webmaster/cms/wordpress/inne/feed/" rel="self" type="application/rss+xml" />
	<link>http://vivee.info</link>
	<description>Blog o wordpress, webmasteringu, grafice i fotografii.</description>
	<lastBuildDate>Sat, 01 Jan 2011 22:14:10 +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>Tworzenie nowych bloków w panelu administratora</title>
		<link>http://vivee.info/2010/10/06/tworzenie-nowych-blokow-w-panelu-administratora/</link>
		<comments>http://vivee.info/2010/10/06/tworzenie-nowych-blokow-w-panelu-administratora/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 12:27:40 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Inne tutoriale wordpressowe]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2089</guid>
		<description><![CDATA[Jestem leniwy. Nie jest to coś godnego pochwały, ale jednak. I tak oto moje lenistwo focha strzeliło podczas pisania jednego z projektów, gdzie musiałem dopisać do każdego wpisu kilka pól użytkownika (custom fields). Po trzecim wpisie foch był już okrutny i postanowiłem jakoś to obejść - najlepiej pisząc pod formularzem edycji wpisu dodatkowy formularz w [...]]]></description>
			<content:encoded><![CDATA[<p>Jestem leniwy. Nie jest to coś godnego pochwały, ale jednak. I tak oto moje lenistwo focha strzeliło podczas pisania jednego z projektów, gdzie musiałem dopisać do każdego wpisu kilka pól użytkownika (custom fields). Po trzecim wpisie foch był już okrutny i postanowiłem jakoś to obejść - najlepiej pisząc pod formularzem edycji wpisu dodatkowy formularz w którym będę miał wypisane wszystkie cf, a wartości przygotowane jako listy rozwijane, żeby tylko sobie wybrać co trzeba. Jako, że jakoś się z tym ogarnąłem to podzielę się teraz tą wiedzą z Wami.<span id="more-2089"></span></p>
<p>Twórcy WordPressa na szczęście po raz kolejny okazali się bardzo sympatyczni i dodanie takiego ficzerka jest naprawdę proste. Można to zrobić na dwa sposoby - albo poprzez <code>functions.php</code> (czyli będzie to działać tylko z tą skórą w której to napiszemy) albo jako plugin (bardziej uniwersalne).</p>
<h2>Pierwszy blok</h2>
<p>Najpierw musimy napisać kilka linijek dzięki którym stworzymy nasz nowy blok:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> admin_init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; add_meta_box<span class="br0">&#40;</span><span class="st0">&quot;testblock&quot;</span>, <span class="st0">&quot;Fajny Tytuł&quot;</span>, <span class="st0">&quot;test_block&quot;</span>, <span class="st0">&quot;post&quot;</span>, <span class="st0">&quot;advanced&quot;</span>, <span class="st0">&quot;high&quot;</span><span class="br0">&#41;</span>; &nbsp;<br />
<span class="br0">&#125;</span></div>
<p>Funkcja add_meta_box (więcej info <a href="http://codex.wordpress.org/Function_Reference/add_meta_box">tutaj</a>) odpowiada właśnie za tworzenie takich bloków. Kolejno jako parametry podajemy identyfikator, tytuł bloku, funkcję którą ten blok wykona, pod co podpinamy, umiejscowienie oraz ułożenie. Warto poczytać sobie codex, gdyż są tam dokładnie podane z jakich umiejscowień możemy korzystać etc. W naszym przypadku stworzymy blok, który będzie widoczny tylko pod wpisami (post), będzie miał tytuł "Fajny Tytuł" i wywoła funkcję test_block() (której to jeszcze nie napisalismy).</p>
<p>No to czas ją napisać:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> test_block<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'plum'</span>;<br />
<span class="br0">&#125;</span></div>
<p>Jak nietrudno zauważyć w obecnej postaci w bloku powinien się pojawić napis "plum" i już. Jednak to jeszcze nie wszystko, żeby to zadziałało - musimy jeszcze blok zainicjalizować. Robimy to następująco:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw1">if</span><span class="br0">&#40;</span>is_admin<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">&quot;admin_init&quot;</span>, <span class="st0">&quot;admin_init&quot;</span><span class="br0">&#41;</span>; &nbsp;<br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Teraz gdy spojrzymy w panel pod textarea na treść wpisu powinien pojawić się nasz blok a w nim napis "plum".</p>
<h2>Zwiększamy funkcjonalność</h2>
<p>Niestety radość z pluma szybko mija i warto by zrobić z tego coś bardziej praktycznego. Np. zrobimy sobie formularz za pomocą którego będzie nam łatwiej dodawać custom fields.</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> test_block<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$post</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$custom</span> = get_post_custom<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$muzyka</span> = <span class="re0">$custom</span><span class="br0">&#91;</span><span class="st0">&quot;muzyka&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pogoda</span> = <span class="re0">$custom</span><span class="br0">&#91;</span><span class="st0">&quot;pogoda&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$reszta</span> = <span class="re0">$custom</span><span class="br0">&#91;</span><span class="st0">&quot;reszta&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>; &nbsp;<br />
<span class="kw2">?&gt;</span> &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>label<span class="sy0">&gt;</span>Czego słucham:<span class="sy0">&lt;/</span>label<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>select name=<span class="st0">&quot;muzyka&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$muzyka</span>==<span class="st0">'Rock'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Rock<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$muzyka</span>==<span class="st0">'Pop'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Pop<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$muzyka</span>==<span class="st0">'Disco Polo'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Disco polo<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>select<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>label<span class="sy0">&gt;</span>Jaka jest pogoda<span class="sy0">&lt;/</span>label<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>select name=<span class="st0">&quot;pogoda&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$pogoda</span>==<span class="st0">'Pada'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Pada<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$pogoda</span>==<span class="st0">'Leje'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Leje<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$pogoda</span>==<span class="st0">'Bul bul bul'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Bul bul bul<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>select<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span> &nbsp;<br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>label<span class="sy0">&gt;</span>Napisz coś jeszcze:<span class="sy0">&lt;/</span>label<span class="sy0">&gt;&lt;</span>input name=<span class="st0">&quot;reszta&quot;</span> value=<span class="st0">&quot;&lt;?php echo $reszta; ?&gt;&quot;</span> <span class="sy0">/&gt;</span><br />
<span class="kw2">&lt;?php</span> &nbsp;<br />
<span class="br0">&#125;</span></div>
<p>Dzięki temu w skórze pojawi nam się formularz w którym możemy wybrać sobie gatunek muzyki, pogodę i coś tam jeszcze napisać. W obecnej chwili poza wyświetlaniem nic innego nie robi - musimy jeszcze stworzyć funkcję, która wrzuci te zmienne do custom fields oraz poinformować WP, żeby przy każdym zapisie wpisu był łaskaw takową funkcję wywołać.</p>
<p>Najpierw funkcja do zapisu:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> save_cf<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> &nbsp;<br />
&nbsp; &nbsp; <a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$post</span>; &nbsp;<br />
&nbsp; &nbsp; update_post_meta<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>, <span class="st0">&quot;muzyka&quot;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;muzyka&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; update_post_meta<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>, <span class="st0">&quot;pogoda&quot;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;pogoda&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; update_post_meta<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>, <span class="st0">&quot;reszta&quot;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;reszta&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span> &nbsp;</div>
<p>Po kolei tworzy lub uaktualnia zawartość kolejnych pól.</p>
<p>A by to wszystkow wywołać poprawiamy to napisaliśmy przy wywoływaniu bloku:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw1">if</span><span class="br0">&#40;</span>is_admin<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">&quot;admin_init&quot;</span>, <span class="st0">&quot;admin_init&quot;</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">'save_post'</span>, <span class="st0">'save_cf'</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp;</div>
<p class="insp"><a href="http://pliki.vivee.info/users/palmiak/panel/1.png"><img src="http://pliki.vivee.info/users/palmiak/panel/1.png" alt="Tworzenie nowych bloków w panelu administratora" /></a></p>
<p>I już. Wszystko powinno działać jak ta lala <img src='http://vivee.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Teraz Wasza kolej - dopisujcie własne bloki. We wpisach, na stronach, po bokach lub na dole. Róbcie z nimi co chcecie.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2089&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F10%2F06%2Ftworzenie-nowych-blokow-w-panelu-administratora%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/10/06/tworzenie-nowych-blokow-w-panelu-administratora/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Wyróżnianie wpisów w WordPress</title>
		<link>http://vivee.info/2009/12/04/wyroznianie-wpisow-w-wordpress/</link>
		<comments>http://vivee.info/2009/12/04/wyroznianie-wpisow-w-wordpress/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 21:19:19 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Inne tutoriale wordpressowe]]></category>
		<category><![CDATA[Webmaster]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[post_class]]></category>
		<category><![CDATA[wpisy]]></category>
		<category><![CDATA[wyróżniony wpis]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1332</guid>
		<description><![CDATA[Gdy prowadzimy bloga lub stronę czasem zdarzają się wpisy, które byśmy chcieli jakoś wyróżnić. Czemu? Bo albo są ważne, albo są np wpisami sponsorowanymi. Powodów może być wiele. I jest to naprawdę łatwe do uzyskania. W poniższym tutorialu zaprezentuje dwie metody jak coś takiego osiągnąć. Obie metody sprowadzają się jednak do identycznego zakończenia, czyli oznaczenia [...]]]></description>
			<content:encoded><![CDATA[<p>Gdy prowadzimy bloga lub stronę czasem zdarzają się wpisy, które byśmy chcieli jakoś wyróżnić. Czemu? Bo albo są ważne, albo są np wpisami sponsorowanymi. Powodów może być wiele. I jest to naprawdę łatwe do uzyskania.<span id="more-1332"></span></p>
<p>W poniższym tutorialu zaprezentuje dwie metody jak coś takiego osiągnąć. Obie metody sprowadzają się jednak do identycznego zakończenia, czyli oznaczenia wpisu odpowiednią css'ową klasą, np. "important". W stylu zaś ozdobimy go tak jak chcemy.</p>
<h2>Nasz bohater</h2>
<p>Nim jednak zaczniemy pisać o konkretach muszę wspomnieć troszkę o funkcji <code>post_class()</code>. Funkcja ta służy do wyświetlania klas związanych z wpisem. Wytestujcie ją umieszczając w loopie i zobaczcie co wypisze. Widać, że w bardzo prosty sposób dzięki niej można rozwiązać kwestię stylowania poszczególnych kategorii etc.</p>
<p>Poza wyświetlaniem klas możemy też zachęcić funkcję do tego, żeby wyświetliła klasę zaproponowaną przez nas. Jezeli chcemy dopisać do jakiegoś elementu klasę 'vivee' wystarczy, że użyjemy <code>post_class('vivee')</code>.</p>
<p>Tyle jeśli chodzi o teorię - czas na praktykę.</p>
<h2>Użyjmy kategorii</h2>
<p>Pierwsze co musimy zrobić to utworzyć kategorię do której będziemy wrzucać ważne wpisy. Nazwijmy ją "ważne wpisy". Czas umieścić <code>post_class()</code> w odpowiednim miejscu.</p>
<p>Jeżeli nasz loop wygląda tak:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> <span class="kw1">while</span> <span class="br0">&#40;</span>have_posts<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> : the_post<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>h2 <span class="kw2">class</span>=<span class="st0">&quot;art&quot;</span><span class="sy0">&gt;&lt;</span>a href=<span class="st0">&quot;&lt;?php the_permalink(); ?&gt;&quot;</span><span class="sy0">&gt;&lt;</span>?php the_title<span class="br0">&#40;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;&lt;/</span>h2<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;?php</span> the_content<span class="br0">&#40;</span><span class="st0">&quot;więcej&quot;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>div <span class="kw2">class</span>=<span class="st0">&quot;clear&quot;</span><span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span><br />
<span class="kw2">&lt;?php</span> <span class="kw1">endwhile</span>; <span class="kw2">?&gt;</span></div>
<p>to <code>post_class()</code> umieszczamy następująco:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> <span class="kw1">while</span> <span class="br0">&#40;</span>have_posts<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> : the_post<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>div <span class="kw2">&lt;?php</span> post_class<span class="br0">&#40;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>h2 <span class="kw2">class</span>=<span class="st0">&quot;art&quot;</span><span class="sy0">&gt;&lt;</span>a href=<span class="st0">&quot;&lt;?php the_permalink(); ?&gt;&quot;</span><span class="sy0">&gt;&lt;</span>?php the_title<span class="br0">&#40;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;&lt;/</span>h2<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;?php</span> the_content<span class="br0">&#40;</span><span class="st0">&quot;więcej&quot;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>div <span class="kw2">class</span>=<span class="st0">&quot;clear&quot;</span><span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span><br />
<span class="kw2">&lt;?php</span> <span class="kw1">endwhile</span>; <span class="kw2">?&gt;</span></div>
<p>Wpisy, które zostały oznaczone kategorią "ważne wpisy" dostaną klasę <code>category-wazne-wpisy</code>.</p>
<h2>Użyjmy pola użytkownika</h2>
<p>Jeżeli komuś się nie podobają kategorie może użyć pól użytkownika. Wystarczy stworzyć pole "important" i jako wartość przypisać 1 (jeśli uznamy wpis za wazny).</p>
<p>W tym przypadku tworzymy functions.php i dopisujemy w nim (lub po prostu tylko dopisujemy do tego pliku jezeli już istnieje) funkcję <code>is_important()</code>:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> is_important<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$post</span>;<br />
<span class="re0">$important</span>=get_post_meta<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>, <span class="st0">&quot;important&quot;</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;</p>
<p><span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$important</span>==<span class="nu0">1</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<span class="kw1">return</span> <span class="st0">'important'</span>;<br />
<span class="br0">&#125;</span> <br />
<span class="br0">&#125;</span></div>
<p>O polach użytkownika już pisaliśmy, jednak przypomnę, że za pomocą <code>get_post_meta($post->ID, "important", true)</code> pobieramy wartość pola "important" i przypisujemy do zmiennej. Następnie sprawdzamy czy wartość jest równa 1. Jeśli tak to dopisana jest klasa <code>important</code>.</p>
<p>Żeby to zadziałało zastępujemy zwykłe <code>post_class()</code> za pomocą:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> <span class="kw1">while</span> <span class="br0">&#40;</span>have_posts<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> : the_post<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span><br />
&nbsp; &nbsp; <span class="kw2">&lt;?php</span> <span class="re0">$important</span> = is_important<span class="br0">&#40;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>div <span class="kw2">&lt;?php</span> post_class<span class="br0">&#40;</span><span class="re0">$important</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>h2 <span class="kw2">class</span>=<span class="st0">&quot;art&quot;</span><span class="sy0">&gt;&lt;</span>a href=<span class="st0">&quot;&lt;?php the_permalink(); ?&gt;&quot;</span><span class="sy0">&gt;&lt;</span>?php the_title<span class="br0">&#40;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;&lt;/</span>h2<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;?php</span> the_content<span class="br0">&#40;</span><span class="st0">&quot;więcej&quot;</span><span class="br0">&#41;</span>;?<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>div <span class="kw2">class</span>=<span class="st0">&quot;clear&quot;</span><span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span><br />
<span class="kw2">&lt;?php</span> <span class="kw1">endwhile</span>; <span class="kw2">?&gt;</span></div>
<h2>Stylujemy</h2>
<p>Kiedy już przy odpowiednich wpisach pojawia się nam klasa category-wazne-wpisy lub important możemy spokojnie zabrać się za stylowanie:</p>
<div class="css dean_ch" style="white-space: nowrap;"><span class="re1">.important</span><span class="br0">&#123;</span><br />
...<br />
<span class="br0">&#125;</span></div>
<p>co wpiszecie zamiast "..." jest już tylko zależne od Was. Możecie np. zrobić coś bardzo kontrastowego i na białej stronie wyróżnionym wpisom dać ciemne tło. </p>
<h2>Podsumowanie</h2>
<p>I tak oto za pomocą niezwykle prostej sztuczki osiągneliśmy bardzo fajny i pożyteczny efekt. Ogólnie rzecz boirąc dopisywanie jakiejś klasy do pewnego typu wpisu jest bardzo użyteczną metodą. Tak też można wróżniać wpisy danego autora.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1332&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F12%2F04%2Fwyroznianie-wpisow-w-wordpress%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/12/04/wyroznianie-wpisow-w-wordpress/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>WordPress Shortcode API</title>
		<link>http://vivee.info/2009/02/12/wordpress-shortcode-api/</link>
		<comments>http://vivee.info/2009/02/12/wordpress-shortcode-api/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 18:25:28 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Inne tutoriale wordpressowe]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=565</guid>
		<description><![CDATA[Czasem zdarza się, że pisząc wpis chcielibyśmy wywołaś jakiś kod PHP. No niby da się - są do tego wtyczki, jednak miło by było gdyby była jakaś prostsza metoda. W WP 2.5 na szczęście się taka pojawiała, chodzi o tytułowe Shortcode API. W tym artykule postaram się pokazać Wam jak z tego korzystać. Dzięki Shortcode [...]]]></description>
			<content:encoded><![CDATA[<p>Czasem zdarza się, że pisząc wpis chcielibyśmy wywołaś jakiś kod PHP. No niby da się - są do tego wtyczki, jednak miło by było gdyby była jakaś prostsza metoda. W WP 2.5 na szczęście się taka pojawiała, chodzi o tytułowe Shortcode API. W tym artykule postaram się pokazać Wam jak z tego korzystać.<span id="more-565"></span></p>
<p>Dzięki Shortcode API możemy wywoływać funkcje PHP w następujące sposoby:
<ul>
<li><code>[moja_funkcja]</code></li>
<li><code>[moja_funkcja argument1="4" argument2="maciek"]</code></li>
<li><code>[moja_funkcja]Jakaś treść[/moja_funkcja]</code></li>
<li><code>[moja_funkcja argument1="4" argument2="maciek"]Jakaś treść[/moja_funkcja]</code></li>
</ul>
<p>W dalszej części artykułu przedstawię po jednym przykładzie użycia każdego wariantu. Jednak już teraz widać, że jest to naprawdę miłe i potężne narzędzie. Nie dość, że pozwoli nam wywołac PHP to jeszcze możemy odpowiednią listę argumentów.</p>
<h2>Pojedynczo i bez argumentów</h2>
<p>Nasza pierwsza funkcja nie będzie zbyt twórcza - jedyne co będzie robić to wypisywać fragment "Lorem ipsum". Do testowania w sam raz.</p>
<p>Żeby to zrobić otwieramy (lub tworzymy jeśli nie ma) plik functions.php w katalogu z naszą skórką. Następnie piszemy tam:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span><br />
<span class="kw2">function</span> lipsum<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp;<span class="kw1">return</span> <span class="st0">'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur tempus laoreet tellus. Nam fermentum. Fusce lobortis purus nec risus. Aliquam risus purus, rhoncus ut, vulputate vel, venenatis sed, enim.'</span>;<br />
<span class="br0">&#125;</span><br />
add_shortcode<span class="br0">&#40;</span><span class="st0">'lorem'</span>, <span class="st0">'lipsum'</span><span class="br0">&#41;</span>;<br />
<span class="kw2">?&gt;</span></div>
<p>Jedyne co może ciekawić w tym wszystkim to <code>add_shortcode('lorem', 'lipsum');</code>. Dzięki tej funkcji sygnalizujemy, że poprzez napisanie <code>[lorem]</code> we wpisie wywołujemy funkcję <code>lipsum</code>.</p>
<h2>Pojedynczo, ale solidnie uargumentowane</h2>
<p>Kolejną możliwością jest <code>[lorem_v2 ilosc="20"]</code>. Będzie to rozszerzona wersja poprzedniej funkcji o możliwość podania ile razy tekst ma się powtórzyć.</p>
<p>Tym oto sposobem nasz funkcja będzie wyglądać:</p>
<div class="php dean_ch" style="white-space: nowrap;">
<span class="kw2">function</span> lorem_with_count<span class="br0">&#40;</span><span class="re0">$atts</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/extract"><span class="kw3">extract</span></a><span class="br0">&#40;</span>shortcode_atts<span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'count'</span> =<span class="sy0">&gt;</span> <span class="nu0">5</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>, <span class="re0">$atts</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</p>
<p><span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span>=<span class="nu0">0</span>; <span class="re0">$i</span><span class="sy0">&lt;</span><span class="re0">$count</span>;<span class="re0">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur tempus laoreet tellus. Nam fermentum. Fusce lobortis purus nec risus. Aliquam risus purus, rhoncus ut, vulputate vel, venenatis sed, enim.'</span>;<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
add_shortcode<span class="br0">&#40;</span><span class="st0">'lorem_v2'</span>, <span class="st0">'lorem_with_count'</span><span class="br0">&#41;</span>;<br />
&nbsp;</div>
<p>Jest to funkcja z cyklu prostackich wręcz, jednak dobrze ilustruje jak używać tego typu shorttagów. Wszystkie argumenty z tagu (w naszym przypadku count="20") przypisywane są do tablicy <code>$atts</code>. Za pomocą funkcji <code>extract</code>, poza przypisaniem zawartości tablicy do zmiennych, możemy ustalić wartości defaultowe (w naszym przypadku count => 5).</p>
<p>Na końcu pozostaje już tylko wykonanie pętli tyle razy ile podaliśmy w <code>count</code> (lub 5 razy, jeśli argument pomineliśmy).</p>
<h2>Prawie jak bbcode</h2>
<p>Na końcu zrobimy sobie coś a'la bbcode, czyli [b]jakiś tekst[/b] będzie pogrobiony, a [i]inny tekst[/i] będzie pochylony.</p>
<div class="php dean_ch" style="white-space: nowrap;">
<span class="kw2">function</span> convert_to_strong<span class="br0">&#40;</span><span class="re0">$atts</span>, <span class="re0">$content</span>=<span class="st0">''</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">'&lt;strong&gt;'</span>.<span class="re0">$content</span>.<span class="st0">'&lt;/strong&gt;'</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">function</span> convert_to_em<span class="br0">&#40;</span><span class="re0">$atts</span>, <span class="re0">$content</span>=<span class="st0">''</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">'&lt;em&gt;'</span>.<span class="re0">$content</span>.<span class="st0">'&lt;/em&gt;'</span>;<br />
<span class="br0">&#125;</span><br />
add_shortcode<span class="br0">&#40;</span><span class="st0">'b'</span>, <span class="st0">'convert_to_strong'</span><span class="br0">&#41;</span>;<br />
add_shortcode<span class="br0">&#40;</span><span class="st0">'i'</span>, <span class="st0">'convert_to_em'</span><span class="br0">&#41;</span>;<br />
&nbsp;</div>
<p>Jak widać po przykładach to co jest pomiędzy naszymi kwadratowymi tagami to po prostu zmienna <code>$content</code>.</p>
<h2>Podsumowanie</h2>
<p>I tak oto wygląda Shorttag API. Dość kiepsko promowany ficzer WordPressa (przegrał walkę z ówczesnym nowym interfejsem). A naprawdę szkoda, bo dzięki niemu może sobie (oraz naszym klientom) bardzo ułatwić pracę. O wiele łatwiej jest tłumaczyć, zeby napisał [tytul]jakiś tytuł[/tytul] niż tłumaczyć którego h ma użyć (a i tak użyje złego). Dodatkowo pozwala w dość prosty sposób osadzać w treści wiele rzeczy (np. mapkę googlową po podaniu tylko wysokości i szerokości geograficznej [gmap dl=x szer=y]).</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=565&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2009%2F02%2F12%2Fwordpress-shortcode-api%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2009/02/12/wordpress-shortcode-api/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>FeedWordPress &#8211; czyli jak agregować RSSy</title>
		<link>http://vivee.info/2008/01/18/feedwordpress-czyli-jak-agregowac-rssy/</link>
		<comments>http://vivee.info/2008/01/18/feedwordpress-czyli-jak-agregowac-rssy/#comments</comments>
		<pubDate>Fri, 18 Jan 2008 21:13:47 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Inne tutoriale wordpressowe]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://vivee.info/2008/01/18/feedwordpress-czyli-jak-agregowac-rssy/</guid>
		<description><![CDATA[Część z Was pewnie spotkała się z wtyczką FeedWordPress czytając artykuł na PolskimBloggerze. Jest to wtyczka, która może być bardzo pomocna lub, niestety, może bardzo ułatwić kradzież treści. Liczę, że Wy będziecie jej używać tylko w zacnych celach. Co to robi? Najprościej mówiąc czyta sobie wybrane przez nas kanały RSS i publikuje na naszym blogu [...]]]></description>
			<content:encoded><![CDATA[<p>Część z Was pewnie spotkała się z wtyczką FeedWordPress czytając artykuł na PolskimBloggerze. Jest to wtyczka, która może być bardzo pomocna lub, niestety,  może bardzo ułatwić kradzież treści. Liczę, że Wy będziecie jej używać tylko w zacnych celach.<span id="more-115"></span></p>
<h2>Co to robi?</h2>
<p>Najprościej mówiąc czyta sobie wybrane przez nas kanały RSS i publikuje na naszym blogu wszystko co przeczyta. Oczywiście dzięki <strong>FeedWordPress</strong> możemy zapanować nad żywiołem wyznaczając np kategorie do których ma umieszczać wpisy, wybierając czy wpisy mają być od razu publokowane czy tylko zapisane i wiele innych.</p>
<h2>Do czego to służy FeedWordPress</h2>
<p>Nim przejdziemy do instalacji zastanówmy się do czego wtyczki można użyć.</p>
<p>Jak już pisałem we wstępnie, za jej pomocą możemy kraść treść (szczególnie jeśli ktoś po RSS udostępnia cały wpis a nie tylko zajawkę), możemy też użyć tego do tworzenia zaplecza. Ja osobiście będę używał tej wtyczki do umieszczania na jednej stronie aktualności z kilku serwisów (coś jakby stronę głównę, zbierającą wszystkie informacje z moich serwisów).</p>
<h2>Instalacja</h2>
<p>Najpierw pobieram wtyczkę z <a href="http://projects.radgeek.com/feedwordpress/">oficjalnej strony</a>.<br />
Tworzymy w katalogu <em>wp-content/plugins/</em> katalog <em>feedwordpress</em> i kopiujemy do niego pliki</p>
<ul>
<li>syndication-options.php</li>
<li>feedwordpress.php</li>
</ul>
<p>Do katalogu <em>wp-includes</em> kopiujemy będące w <em>MagpieRSS-upgrade</em>.</p>
<p>Pozostaje nam już tylko wejść do panelu administracyjnego w zakładkę wtyczki i aktywować <strong>FeedWordPress</strong>.</p>
<h2>Pierwsze podejście</h2>
<p class="picture"><a href="http://pliki.vivee.info/demo/rss/2.jpg"><img src="http://pliki.vivee.info/demo/rss/2m.jpg" alt="FeedWordpress" /></a></p>
<p>Żeby rozpocząć naszą przygodę z agregowaniem RSS'ów wystarczy przejść w PA do zakładki <strong>Syndication</strong>, znaleźć na nowej stronie <strong>Add a new syndicated site</strong>, wpisać odpowiedni link i kliknąć <strong>Syndicate</strong>. Skrypt zapytan nas czy na pewno chcemy korzystać z tego kanału - oczywiście potwierdzamy. Tym sposobem dodaliśmy nasz pierwszy kanał RSS.</p>
<p>Teraz szukamy na stronie <strong>Update feeds now</strong> i klikamy <strong>Update</strong>. Tym sposobem ostanie 10 wpisów z serwisu który podaliśmy wylądowało na naszym blogu. No niby fajnie. Ale ja osobiście lubię mieć większą kontrolę nad takimi rzeczami. Dlatego teraz pogrzebiemy w konfiguracji.</p>
<h2>Konfigurujemy</h2>
<p class="picture"><a href="http://pliki.vivee.info/demo/rss/1.jpg"><img src="http://pliki.vivee.info/demo/rss/1m.jpg" alt="FeedWordpress" /></a></p>
<p>Wtyczka oferuje nam możliwość ustawienia opcji globalny oraz tylko dla poszczególnego kanału RSS. Jest to naprawdę bardzo przydatna cecha tej wtyczki, która może nam bardzo życie ułatwić.</p>
<p>My zajmiemy się konfiguracją globalną, resztę zostawiam Wam do eksperymentów. Klikam więc na zakładkę <strong>Options</strong> w <strong>Syndication</strong>.</p>
<p>Za pomocą <strong>Check for new posts</strong> możemy wybrać czy chcemy, żeby nowe wpisy z RSS'ów trafiały do nas automatycznie albo ręcznie (czyli poprzez kliknięcie <strong>Update</strong>, jak opisywałem akapit wcześniej).</p>
<p>W <strong>Publication</strong> wybieramy czy nowe wpisy mają być od razu publikowane, zapisywane jak brudnopis czy jako prywatne wpisy.</p>
<p>Za pomocą <strong>Comments</strong> ustalamy czy pod pobranymi wpisami mają być komentarze czy nie.</p>
<p><strong>Trackback and Pingback</strong> - wybieramy czy chcemy akceptować trackbacki i pingi</p>
<p><strong>Unfamiliar authors</strong> oraz <strong>Unfamiliar categories</strong> pozwalają na podjęcie odpowiedniego działania w wypadku gdy autor bądź kategoria wpisu nie istnieje na naszym blogu. Możemy wtedy albo wywalić wpis, albo utworzyć odpowiedniego autora/kategorię albo przypisać defaultową kategorię/autora.</p>
<p>Pozostaje nam jeszcze z boku wybrać do jakich kategorii ma trafić pobrany przez nas wpis.</p>
<h2>Podsumowanie</h2>
<p>Mam nadzięję, że dzięki tej wtyczce będzie mogli np. "spiąć" z sobą swoje serwisy będące na różnych serwerach w sposób bardzo prosty i wygodny. Pamiętajcie tylko, że nim zaczniecie pobierać od kogoś RSS'y i publkować u siebie, zapytajcie go o zgodę.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=115&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2008%2F01%2F18%2Ffeedwordpress-czyli-jak-agregowac-rssy%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2008/01/18/feedwordpress-czyli-jak-agregowac-rssy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>O wyświetlaniu podstron w WordPress</title>
		<link>http://vivee.info/2007/10/03/o-wyswietlaniu-podstron-w-wordpress/</link>
		<comments>http://vivee.info/2007/10/03/o-wyswietlaniu-podstron-w-wordpress/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 20:00:16 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[CMSy]]></category>
		<category><![CDATA[Inne tutoriale wordpressowe]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[Webmaster]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://vivee.info/2007/10/03/o-wyswietlaniu-podstron-w-wordpress/</guid>
		<description><![CDATA[Wczoraj przypomniał o sobie pewien znajomy, który pyta mnie czasem o problemy związane z WordPressem. Przypomniało mi to jego stare pytanie. Dlatego raz jeszcze opiszę ja w WordPressie zrobić sztuczkę która pozwala na pokazywanie tylko "dzieci" strony. Wyobraźmy sobie sytuacje gdzie mamy dwie strony: X oraz Y, do X należą podstrony X1, X2, i tak [...]]]></description>
			<content:encoded><![CDATA[<p>Wczoraj przypomniał o sobie pewien znajomy, który pyta mnie czasem o problemy związane z WordPressem. Przypomniało mi to jego stare pytanie. Dlatego raz jeszcze opiszę ja w WordPressie zrobić sztuczkę która pozwala na pokazywanie tylko "dzieci" strony.<span id="more-94"></span></p>
<blockquote><p>Wyobraźmy sobie sytuacje gdzie mamy dwie strony:<br />
X oraz Y, do X należą podstrony X1, X2, i tak dalej, odpowiedno do Y,<br />
należą Y1, Y2. Jak narazie nic trudnego. Tutaj pojawia sie<br />
pytanie: Jak wyswietlić w SIDEBARZE, podstrony X1, X2 [ oraz odpowiednio<br />
Y1,Y2 ], jednak aby nie wyświetlały sie strony nadrzędne X,Y?</p></blockquote>
<p>Najpierw musimy sprawdzić czy strona-rodzic istnieje (może w końcu być zły link czy coś) oraz czy to w co klikneliśmy jest stroną.</p>
<p>Kiedy już mamy tą pewność pobieramy ID strony i staramy się odnaleźć go w bazie, a następnie namierzyć jego rodzica (robimy to w pętli aż znajdziemy tego ostatecznego rodzica). Wiedząc już coś takiego pozostaje nam tylko wypisać strony-dzieci za pomocą</p>
<div class="php dean_ch" style="white-space: nowrap;">
<span class="kw2">&lt;?php</span> wp_list_pages<span class="br0">&#40;</span><span class="st0">'child_of='</span>. <span class="re0">$parent_id</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span><br />
&nbsp;</div>
<p>gdzie <code>$parent_id</code> to numer ID rodzica.</p>
<p>Teraz czas na praktykę.</p>
<p>W naszego <code>sidebar.php</code> musimy wkleić następujący kod</p>
<div class="php dean_ch" style="white-space: nowrap;">
<span class="kw2">&lt;?php</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$notfound</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>is_page<span class="br0">&#40;</span><span class="br0">&#41;</span> and <span class="br0">&#40;</span><span class="re0">$notfound</span> <span class="sy0">!</span>= <span class="st0">'1'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current_page</span> = <span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span><span class="br0">&#40;</span><span class="re0">$current_page</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$page_query</span> = <span class="re0">$wpdb</span>-<span class="sy0">&gt;</span><span class="me1">get_row</span><span class="br0">&#40;</span><span class="st0">&quot;SELECT ID, post_title, post_status, post_parent FROM $wpdb-&gt;posts WHERE ID = '$current_page'&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current_page</span> = <span class="re0">$page_query</span>-<span class="sy0">&gt;</span><span class="me1">post_parent</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$parent_id</span> = <span class="re0">$page_query</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$parent_title</span> = <span class="re0">$page_query</span>-<span class="sy0">&gt;</span><span class="me1">post_title</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$wpdb</span>-<span class="sy0">&gt;</span><span class="me1">get_results</span><span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM $wpdb-&gt;posts WHERE post_parent = '$parent_id' AND post_status != 'attachment'&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">?&gt;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>ul <span class="kw2">class</span>=<span class="st0">&quot;list-page&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;?php</span> wp_list_pages<span class="br0">&#40;</span><span class="st0">'child_of='</span>. <span class="re0">$parent_id</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>ul<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">&lt;?php</span> <span class="br0">&#125;</span> <span class="br0">&#125;</span> <span class="kw2">?&gt;</span><br />
&nbsp;</div>
<p>Musimy mieć jeszcze menu, które będzie pokazywało strony-rodziców, a takie otrzymamy następującym kodem:</p>
<div class="php dean_ch" style="white-space: nowrap;">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>ul<span class="sy0">&gt;</span><br />
<span class="kw2">&lt;?php</span> wp_list_pages<span class="br0">&#40;</span><span class="st0">'sort_column=menu_order&amp;title_li=&amp;depth=-1 '</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>ul<span class="sy0">&gt;</span><br />
&nbsp;</div>
<p>I tak oto problem <strong>Karola</strong> zostaje rozwiązany. Mam nadzieję, że innym też się to przyda.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=94&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2007%2F10%2F03%2Fo-wyswietlaniu-podstron-w-wordpress%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2007/10/03/o-wyswietlaniu-podstron-w-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

