<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Комментарии к записи: Пишем плагин-виджет для WordPress с использованием нового Widgets API</title>
	<atom:link href="http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html</link>
	<description>Лучшее из мира WordPress</description>
	<lastBuildDate>Thu, 09 Feb 2012 07:45:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Автор: Wordpresser</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15719</link>
		<dc:creator>Wordpresser</dc:creator>
		<pubDate>Sun, 22 Jan 2012 12:35:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15719</guid>
		<description>Спасибо, Сергей, над комментариями поработаю.</description>
		<content:encoded><![CDATA[<p>Спасибо, Сергей, над комментариями поработаю.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15717</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Sun, 22 Jan 2012 02:03:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15717</guid>
		<description>Хотел ещё улучшить этот виджет, внести пару конструктивных предложений. Но не буду писать что придумал. Сайт всё равно код покоцает :(</description>
		<content:encoded><![CDATA[<p>Хотел ещё улучшить этот виджет, внести пару конструктивных предложений. Но не буду писать что придумал. Сайт всё равно код покоцает <img src='http://www.wordpresser.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15716</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Sun, 22 Jan 2012 01:32:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15716</guid>
		<description>P.S. Автор сайта, отключи эту странную штуку, которая вырезает и изменяет код в сообщениях. В итоге весь код которыя я написал в предыдущем посте изменился, а некоторый исчез вообще.
Не интересно :(</description>
		<content:encoded><![CDATA[<p>P.S. Автор сайта, отключи эту странную штуку, которая вырезает и изменяет код в сообщениях. В итоге весь код которыя я написал в предыдущем посте изменился, а некоторый исчез вообще.<br />
Не интересно <img src='http://www.wordpresser.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15715</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Sun, 22 Jan 2012 01:27:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15715</guid>
		<description>Поправка №3

В функции widget() допущена ошибка.
Код:

в итоге генерируется например в такое (смотрите HTML):
Какой то заголовок
запись № 1

запись №2

Что понятное дело не есть гуд.

А надо писать вот как:
echo the_title(&#039;&#039;, &#039;&#039;, true);
Данный код будет корректно обработан в Wordpress и на выходе вы получите код сгенерированной странички такого вида:
Какой то заголовок
запись № 1
запись №2

Разница очевидна :)

Описание функции the_title: http://codex.wordpress.org/Function_Reference/the_title</description>
		<content:encoded><![CDATA[<p>Поправка №3</p>
<p>В функции widget() допущена ошибка.<br />
Код:</p>
<p>в итоге генерируется например в такое (смотрите HTML):<br />
Какой то заголовок<br />
запись № 1</p>
<p>запись №2</p>
<p>Что понятное дело не есть гуд.</p>
<p>А надо писать вот как:<br />
echo the_title(&raquo;, &raquo;, true);<br />
Данный код будет корректно обработан в Wordpress и на выходе вы получите код сгенерированной странички такого вида:<br />
Какой то заголовок<br />
запись № 1<br />
запись №2</p>
<p>Разница очевидна <img src='http://www.wordpresser.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Описание функции the_title: <a href="http://codex.wordpress.org/Function_Reference/the_title" rel="nofollow">http://codex.wordpress.org/Function_Reference/the_title</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15712</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Sat, 21 Jan 2012 00:41:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15712</guid>
		<description>Поправка №2

Не знаю как у вас там, в далёком прошлом (судя по дате этого поста), :) а у нас, в 2012-ом, на версии Wordpress 3.3.1 строка
query_posts(&#039;order=ASC&amp;post_status=future&#039;);
для функции widget() не работает.
Залез в базу данных, таблицу wp_posts и увидел, что статус записи регламентируется в поле post_status и отныне статус записей, которые ожидают утверждения (публикации) помечается как pending, а не future.

В итоге, чтоб всё это дело заработало в Wordpress 3.3.1 писать нужно так:
query_posts( &#039;order=ASC&amp;post_status=pending&#039; );

Предлагаю автору изменить и дополнить статью, руководствуясь современными реалиями и внесенными поправками :)</description>
		<content:encoded><![CDATA[<p>Поправка №2</p>
<p>Не знаю как у вас там, в далёком прошлом (судя по дате этого поста), <img src='http://www.wordpresser.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  а у нас, в 2012-ом, на версии Wordpress 3.3.1 строка<br />
query_posts(&#8216;order=ASC&amp;post_status=future&#8217;);<br />
для функции widget() не работает.<br />
Залез в базу данных, таблицу wp_posts и увидел, что статус записи регламентируется в поле post_status и отныне статус записей, которые ожидают утверждения (публикации) помечается как pending, а не future.</p>
<p>В итоге, чтоб всё это дело заработало в Wordpress 3.3.1 писать нужно так:<br />
query_posts( &#8216;order=ASC&amp;post_status=pending&#8217; );</p>
<p>Предлагаю автору изменить и дополнить статью, руководствуясь современными реалиями и внесенными поправками <img src='http://www.wordpresser.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15711</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Fri, 20 Jan 2012 23:42:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15711</guid>
		<description>P.S. Данный сайт как то странно переформатировал ДВЕ одинарные кавычки в строке: 
$title = (isset( $instance[&#039;title&#039;] ) ) ? esc_attr( $instance[&#039;title&#039;] ) : &#039;&#039;;
Имейте ввиду, это не &quot;ёлочки&quot;, это _две_одинарные_кавычки_. Это важно.</description>
		<content:encoded><![CDATA[<p>P.S. Данный сайт как то странно переформатировал ДВЕ одинарные кавычки в строке:<br />
$title = (isset( $instance['title'] ) ) ? esc_attr( $instance['title'] ) : &raquo;;<br />
Имейте ввиду, это не &laquo;ёлочки&raquo;, это _две_одинарные_кавычки_. Это важно.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15710</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Fri, 20 Jan 2012 23:35:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15710</guid>
		<description>Предлагаю поправку №1 )

В функции form() есть такая строка:
   $title = esc_attr($instance[&#039;title&#039;]);
Дело в том, что когда $title пустой PHP генерирует предупреждение:
   PHP Notice:  Undefined index:  title in wp-content/plugins/future-posts/future-posts.php
И правильно делает, что предупреждает :) А дело в том, что как минимум 1 раз $title у вас будет пустым — при установке плагина. Так вот, чтоб не было сего досадного казуса, предлагаю вместо:
   $title = esc_attr($instance[&#039;title&#039;]);
писать так:
   if ( isset( $instance[&#039;title&#039;] ) )
      $title = esc_attr( $instance[&#039;title&#039;] );
Если не всем понятно — это условие, дословно: 
&quot;Если $instance[&#039;title&#039;] не пустой&quot; (1 строчка кода), 
назначить $title значение esc_attr( $instance[&#039;title&#039;] );


Можно кстати сократить, для любителей лаконичности:
$title = (isset( $instance[&#039;title&#039;] ) ) ? esc_attr( $instance[&#039;title&#039;] ) : &#039;&#039;;
Работать будет так же.</description>
		<content:encoded><![CDATA[<p>Предлагаю поправку №1 )</p>
<p>В функции form() есть такая строка:<br />
   $title = esc_attr($instance['title']);<br />
Дело в том, что когда $title пустой PHP генерирует предупреждение:<br />
   PHP Notice:  Undefined index:  title in wp-content/plugins/future-posts/future-posts.php<br />
И правильно делает, что предупреждает <img src='http://www.wordpresser.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  А дело в том, что как минимум 1 раз $title у вас будет пустым — при установке плагина. Так вот, чтоб не было сего досадного казуса, предлагаю вместо:<br />
   $title = esc_attr($instance['title']);<br />
писать так:<br />
   if ( isset( $instance['title'] ) )<br />
      $title = esc_attr( $instance['title'] );<br />
Если не всем понятно — это условие, дословно:<br />
&laquo;Если $instance['title'] не пустой&raquo; (1 строчка кода),<br />
назначить $title значение esc_attr( $instance['title'] );</p>
<p>Можно кстати сократить, для любителей лаконичности:<br />
$title = (isset( $instance['title'] ) ) ? esc_attr( $instance['title'] ) : &raquo;;<br />
Работать будет так же.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15709</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Fri, 20 Jan 2012 22:24:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15709</guid>
		<description>P.S. Прошу прощения, debug.log создается после включения define( ‘WP_DEBUG_LOG’, true );</description>
		<content:encoded><![CDATA[<p>P.S. Прошу прощения, debug.log создается после включения define( ‘WP_DEBUG_LOG’, true );</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Sergey Klay</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15708</link>
		<dc:creator>Sergey Klay</dc:creator>
		<pubDate>Fri, 20 Jan 2012 22:20:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15708</guid>
		<description>Настоятельно рекомендую всем Wordpress-разработчикам использовать режим отладки в своем _тестовом_  (дома, на localhost) сайте режим отладки. Чтоб можно было сразу видеть где вы допустили ошибку. Для этого в файле wp-config.php вставьте следующие строки:

define( &#039;WP_DEBUG&#039;, true ); 
define( &#039;WP_DEBUG_LOG&#039;, true ); 
define( &#039;WP_DEBUG_DISPLAY&#039;, true ); 

Думаю по названию констант и так понятно назначение этих директив.
После вкючения define( &#039;WP_DEBUG&#039;, true );  в папке wp-content создастся файл debug.log, в который буду записываться все ошибки (плагинов, тем, самого движка) вашего Wordpress сайта.</description>
		<content:encoded><![CDATA[<p>Настоятельно рекомендую всем Wordpress-разработчикам использовать режим отладки в своем _тестовом_  (дома, на localhost) сайте режим отладки. Чтоб можно было сразу видеть где вы допустили ошибку. Для этого в файле wp-config.php вставьте следующие строки:</p>
<p>define( &#8216;WP_DEBUG&#8217;, true );<br />
define( &#8216;WP_DEBUG_LOG&#8217;, true );<br />
define( &#8216;WP_DEBUG_DISPLAY&#8217;, true ); </p>
<p>Думаю по названию констант и так понятно назначение этих директив.<br />
После вкючения define( &#8216;WP_DEBUG&#8217;, true );  в папке wp-content создастся файл debug.log, в который буду записываться все ошибки (плагинов, тем, самого движка) вашего Wordpress сайта.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Марк</title>
		<link>http://www.wordpresser.ru/razrabotka-na-wordpress/pishem-plagin-vidzhet-dlya-wordpress-s-ipolzovaniem-novogo-widgets-api.html/comment-page-1#comment-15674</link>
		<dc:creator>Марк</dc:creator>
		<pubDate>Sun, 27 Nov 2011 19:00:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordpresser.ru/?p=186#comment-15674</guid>
		<description>Спасибо за статью, интересная, вот еще одна статья ( http://lifeexample.ru/php-primeryi-skriptov/pishem-plagin-wordpress.html ) о том как писать плагин для wordpressa с немного другим подходом, может кому то будет интересным.</description>
		<content:encoded><![CDATA[<p>Спасибо за статью, интересная, вот еще одна статья ( <a href="http://lifeexample.ru/php-primeryi-skriptov/pishem-plagin-wordpress.html" rel="nofollow">http://lifeexample.ru/php-primeryi-skriptov/pishem-plagin-wordpress.html</a> ) о том как писать плагин для wordpressa с немного другим подходом, может кому то будет интересным.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

