<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Безумный мир вебмастера</title>
	
	<link>http://www.madweb.ru</link>
	<description>Бесплатные скрипты, теория и практика разработки, администрирование веб-серверов</description>
	<lastBuildDate>Tue, 13 Dec 2011 14:23:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/madweb20" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="madweb20" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">madweb20</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Тормоза при обновлении WordPress</title>
		<link>http://www.madweb.ru/delaem-sajty/tormoza-pri-obnovlenii-wordpress/</link>
		<comments>http://www.madweb.ru/delaem-sajty/tormoza-pri-obnovlenii-wordpress/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 14:23:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Делаем сайты]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=171</guid>
		<description><![CDATA[При обновлении WordPress до 3.3. сегодня возникла проблема с MySQL. MySQL перестал отвечать на запросы и все остальные сайты на сервере подвисли. Пришлось капать код, который производит upgrade WP. Проблема зарылась в файле в wp-admin/includes/upgrade.php:1942

// Delete duplicate options.  Keep the option with the highest option_id.
 $wpdb->query("DELETE o1 FROM $wpdb->options AS o1 JOIN $wpdb->options AS [...]]]></description>
			<content:encoded><![CDATA[<p>При обновлении WordPress до 3.3. сегодня возникла проблема с MySQL. MySQL перестал отвечать на запросы и все остальные сайты на сервере подвисли. Пришлось капать код, который производит upgrade WP. Проблема зарылась в файле в wp-admin/includes/upgrade.php:1942</p>
<p><code><br />
// Delete duplicate options.  Keep the option with the highest option_id.<br />
 $wpdb->query("DELETE o1 FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id");<br />
</code></p>
<p>Как можно понять из описания, удаляет дубликаты из таблицы wp_options. Всего лишь ничего&#8230; Но при большом количестве данных в этой таблице, запрос оказался слишком уж медленный. Строку пришлось закомментировать&#8230; upgrade прошел на ура!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/delaem-sajty/tormoza-pri-obnovlenii-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ускоряем WordPress. Переносим статику на отдельный домен</title>
		<link>http://www.madweb.ru/delaem-sajty/uskoryaem-wordpress-perenosim-statiku-na-otdelnyj-domen/</link>
		<comments>http://www.madweb.ru/delaem-sajty/uskoryaem-wordpress-perenosim-statiku-na-otdelnyj-domen/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 03:36:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Делаем сайты]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=164</guid>
		<description><![CDATA[Для ускорения сайта на WordPress (да и любого другого) рекомендуется вынести статику на отдельный cookieless домен. Это означает, что обращении за стилями и картинками, браузер не будет отправлять заголовок Cookie, который может быть довольно большим. 
Например, есть сайт example.com.
Если зайти на главную страницу (http://example.com/), сервер вернет заголовки, которые будут содержать Cookie: &#8230; После загрузки html [...]]]></description>
			<content:encoded><![CDATA[<p>Для ускорения сайта на WordPress (да и любого другого) рекомендуется вынести статику на отдельный cookieless домен. Это означает, что обращении за стилями и картинками, браузер не будет отправлять заголовок Cookie, который может быть довольно большим. </p>
<p>Например, есть сайт example.com.<br />
Если зайти на главную страницу (http://example.com/), сервер вернет заголовки, которые будут содержать Cookie: &#8230; После загрузки html браузер начнет загружать картинки (т.е. http://example.com/wp-content/themes/classical/images/logo.jpg), стили (т.е. http://example.com/wp-content/themes/classical/style.css), скрипты и т.п. При каждом обращении браузер отправит заголовок Cookie серверу с тем значением, которое получил при загрузки главной страницы. Это увеличивает трафик и повышает нагрузку на сервер. Представьте, что у вас на сайте грузится 100 картинок, стилей и JavaScript&#8217;ов. Суммарный объем статики, может не превышать 30Кб, а при этом объем Cookie будет для всех этих файлов может оказаться 5-10Кб (0,5к*100), т.е. трафик увеличится почти на треть!  Особенно это заметно, если в дизайне используется много мелких картинок.</p>
<p>Один из вариантов решения, который чаще всего используют &#8211; вынос статики на другой домен. Можно использовать субдомен, но это может не помочь если Cookie отправляются на домен example.com (т.е. для всех субдоменов). Домен для статики может быть обычным алиасом от главного, но для браузера это разные адреса. Замена адресов загрузки статики на работающем сайте вручную дело неблагодарное, поэтому есть простые инструменты. </p>
<p>1) Автозамена в html с помощью модуля Nginx <a href="http://nginx.org/ru/docs/http/ngx_http_sub_module.html">ngx_http_sub_module</a>.<br />
Пример конфигурации:<br />
<code><br />
  sub_filter        'src="http://example.com/wp-content/uploads'<br />
           'src="http://static-example.com/wp-content/uploads';<br />
  sub_filter_once   off;<br />
</code><br />
Обратите внимание, что указываю src=&raquo;, что бы сюда не попали href=&raquo; и другие атрибуты.<br />
Минусом этого способа является то, что конфигурацию можно использовать только раз. Годится для замены в выводе всех адресов картинок, встроенных в посты. Адреса загрузки статики дизайна нужно сменить в файлах темы.</p>
<p>2) Автозамена с помощью модуля Apache <a href="http://httpd.apache.org/docs/2.2/mod/mod_substitute.html#substitute">mod_substitute</a><br />
в httpd.conf (или в файле конфигурации виртуального хоста), или в .htaccess<br />
<code><br />
AddOutputFilterByType SUBSTITUTE text/html<br />
Substitute s|src="http:\/\/example\.com\/wp-content\/uploads|src="http://static-example.com/wp-content/uploads|i<br />
</code></p>
<p>Строк с Substitute можно указать несколько. Используется Regexp. Однако Апач делает это наверняка медленнее, чем Nginx.</p>
<p>Если же у вас используется Fast-cgi, то  можно попробовать сделать замену на выводе в PHP с помощью ob_start, но тут большой минус, что при обновлении WP, утерянные строки нужно будет восстанавливать.<br />
Пример index.php<br />
<code><br />
<?php<br />
ob_start();<br />
/**<br />
 * Front to the WordPress application. This file doesn't do anything, but loads<br />
 * wp-blog-header.php which does and tells WordPress to load the theme.<br />
 *<br />
 * @package WordPress<br />
 */</p>
<p>/**<br />
 * Tells WordPress to load the WordPress theme and output it.<br />
 *<br />
 * @var bool<br />
 */<br />
define('WP_USE_THEMES', true);</p>
<p>/** Loads the WordPress Environment and Template */<br />
require('./wp-blog-header.php');<br />
$contents = ob_get_contents();<br />
on_end_clean();<br />
echo str_replace('src="http://example.com/wp-content/uploads','http://static-example.com/wp-content/uploads',$contents);<br />
?><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/delaem-sajty/uskoryaem-wordpress-perenosim-statiku-na-otdelnyj-domen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как изменить stylesheet_url в Wordpress</title>
		<link>http://www.madweb.ru/delaem-sajty/kak-izmenit-stylesheet_url-v-wordpress/</link>
		<comments>http://www.madweb.ru/delaem-sajty/kak-izmenit-stylesheet_url-v-wordpress/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 08:55:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Делаем сайты]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=161</guid>
		<description><![CDATA[Столкнулся с проблемой, когда изменения в style.css темы не сразу вступают в силу из-за заголовка Expired, который добавляет nginx. Нашел простое решение динамически менять адрес файла стилей. Тогда при изменениях сразу будет загружаться последняя версия:
Добавил такой кода functions.php:
]]></description>
			<content:encoded><![CDATA[<p>Столкнулся с проблемой, когда изменения в style.css темы не сразу вступают в силу из-за заголовка Expired, который добавляет nginx. Нашел простое решение динамически менять адрес файла стилей. Тогда при изменениях сразу будет загружаться последняя версия:<br />
Добавил такой кода functions.php:<br />
<code><?php</p>
<p>add_filter("stylesheet_uri", "blogo_stylesheet_uri");</p>
<p>/** Функция добавляет к адресу стиля время последнего изменения */<br />
function blogo_stylesheet_uri(){<br />
    $stylesheet_dir_uri = get_stylesheet_directory_uri();<br />
    $path = get_stylesheet_directory();<br />
    $mt = filemtime($path.'/style.css');<br />
    $stylesheet_uri = $stylesheet_dir_uri . "/style.css?".$mt;<br />
    return $stylesheet_uri;<br />
}<br />
</code></p>
<p>При желании можно сделать адрес типа /wp-content/themes/zzz/style.1123312333.css<br />
и прописать rewrite в nginx.conf </p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/delaem-sajty/kak-izmenit-stylesheet_url-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Выбор выделенного сервера с бесплатной установкой</title>
		<link>http://www.madweb.ru/internet-biznes/vybor-vydelennogo-servera-s-besplatnoj-ustanovkoj/</link>
		<comments>http://www.madweb.ru/internet-biznes/vybor-vydelennogo-servera-s-besplatnoj-ustanovkoj/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 05:05:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интернет-бизнес]]></category>
		<category><![CDATA[сервер]]></category>
		<category><![CDATA[хостинг]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=149</guid>
		<description><![CDATA[
Подбирал сервер с 8Gb RAM и составил такую табличку, может кому пригодится.
Брал только те предложения, которые включают бесплатную установку и помесячную плату в районе 100 USD.



Хостер
проц
RAM
HDD
IP
траф
port, Mbit/s
цена, USD
оплата
уст., час


ukrnames.com
Ahtlon II X2
8
2&#215;250 (Raid 1)
2
unlim
100
101
WM
72


burst.net
Q6600
8
1Tb SATA
5
5Tb
100
99,95
paypal
72


burst.net
Q9300
8
1Tb SATA
5
5Tb
100
99.95
paypal
72


burst.net
Q9550
8
1Tb SATA
5
5Tb
100
94
paypal
72


exima-online.net
X2 6000+
8
2&#215;750GB (Raid 1)
1
5Tb
100
93
WM
72


exima-online.net
i7-920
8
2&#215;750GB (Raid 1)
1
10Tb
100
80
WM
72


coretek.ru
Q9550
8
2&#215;500
3
5Tb
100
94
WM
72


cadedic.ru
X3440
8
2&#215;500
5
3Tb
100
107
WM
72


eurostream.info
X3440
8
2&#215;1000 (Raid 1)
1
unlim
100
95
WM
24


eurostream.info
AMD Opteron 1356
8
2&#215;500 (Raid 1)
1
unlim
100
103
WM
72


eurostream.info
Athlon II X4
8
2&#215;750GB (Raid 1)
1
unlim
100
75
WM
72


server4you.com
Athlon II X4
8
2&#215;1000 (Raid 1)
1
unlim
100
68.99
paypal
24


server4you.com
Athlon™ [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.madweb.ru/wp-content/uploads/2011/09/choose-dedicated-server-300x67.jpg" alt="Выбор выделенного dedicated сервера с бесплатной установкой" title="choose dedicated server (dedicated )" width="300" height="67" class="aligncenter size-medium wp-image-159" /><br />
Подбирал сервер с 8Gb RAM и составил такую табличку, может кому пригодится.<br />
Брал только те предложения, которые включают бесплатную установку и помесячную плату в районе 100 USD.</p>
<table border="0" cellspacing="1" cellpadding="5" bgcolor="#333" style="font-size: 80%;">
<tbody>
<tr bgcolor="#fff">
<th>Хостер</th>
<th>проц</th>
<th>RAM</th>
<th>HDD</th>
<th>IP</th>
<th>траф</th>
<th>port, Mbit/s</th>
<th>цена, USD</th>
<th>оплата</th>
<th>уст., час</th>
</tr>
<tr bgcolor="#eee">
<td>ukrnames.com</td>
<td>Ahtlon II X2</td>
<td>8</td>
<td>2&#215;250 (Raid 1)</td>
<td>2</td>
<td>unlim</td>
<td>100</td>
<td>101</td>
<td>WM</td>
<td>72</td>
</tr>
<tr bgcolor="#fff">
<td>burst.net</td>
<td>Q6600</td>
<td>8</td>
<td>1Tb SATA</td>
<td>5</td>
<td>5Tb</td>
<td>100</td>
<td>99,95</td>
<td>paypal</td>
<td style="text-align: left;">72</td>
</tr>
<tr bgcolor="#eee">
<td>burst.net</td>
<td>Q9300</td>
<td>8</td>
<td>1Tb SATA</td>
<td>5</td>
<td>5Tb</td>
<td>100</td>
<td>99.95</td>
<td>paypal</td>
<td>72</td>
</tr>
<tr bgcolor="#fff">
<td>burst.net</td>
<td>Q9550</td>
<td>8</td>
<td>1Tb SATA</td>
<td>5</td>
<td>5Tb</td>
<td>100</td>
<td>94</td>
<td>paypal</td>
<td>72</td>
</tr>
<tr bgcolor="#eee">
<td>exima-online.net</td>
<td>X2 6000+</td>
<td>8</td>
<td>2&#215;750GB (Raid 1)</td>
<td>1</td>
<td>5Tb</td>
<td>100</td>
<td>93</td>
<td>WM</td>
<td>72</td>
</tr>
<tr bgcolor="#fff">
<td>exima-online.net</td>
<td>i7-920</td>
<td>8</td>
<td>2&#215;750GB (Raid 1)</td>
<td>1</td>
<td>10Tb</td>
<td>100</td>
<td>80</td>
<td>WM</td>
<td>72</td>
</tr>
<tr bgcolor="#eee">
<td>coretek.ru</td>
<td>Q9550</td>
<td>8</td>
<td>2&#215;500</td>
<td>3</td>
<td>5Tb</td>
<td>100</td>
<td>94</td>
<td>WM</td>
<td>72</td>
</tr>
<tr bgcolor="#fff">
<td>cadedic.ru</td>
<td>X3440</td>
<td>8</td>
<td>2&#215;500</td>
<td>5</td>
<td>3Tb</td>
<td>100</td>
<td>107</td>
<td>WM</td>
<td>72</td>
</tr>
<tr bgcolor="#eee">
<td>eurostream.info</td>
<td>X3440</td>
<td>8</td>
<td>2&#215;1000 (Raid 1)</td>
<td>1</td>
<td>unlim</td>
<td>100</td>
<td>95</td>
<td>WM</td>
<td>24</td>
</tr>
<tr bgcolor="#fff">
<td>eurostream.info</td>
<td>AMD Opteron 1356</td>
<td>8</td>
<td>2&#215;500 (Raid 1)</td>
<td>1</td>
<td>unlim</td>
<td>100</td>
<td>103</td>
<td>WM</td>
<td>72</td>
</tr>
<tr bgcolor="#eee">
<td>eurostream.info</td>
<td>Athlon II X4</td>
<td>8</td>
<td>2&#215;750GB (Raid 1)</td>
<td>1</td>
<td>unlim</td>
<td>100</td>
<td>75</td>
<td>WM</td>
<td>72</td>
</tr>
<tr bgcolor="#fff">
<td>server4you.com</td>
<td>Athlon II X4</td>
<td>8</td>
<td>2&#215;1000 (Raid 1)</td>
<td>1</td>
<td>unlim</td>
<td>100</td>
<td>68.99</td>
<td>paypal</td>
<td>24</td>
</tr>
<tr bgcolor="#eee">
<td>server4you.com</td>
<td>Athlon™ II X4</td>
<td>12</td>
<td>2&#215;1500 (Raid 1)</td>
<td>1</td>
<td>unlim</td>
<td>100</td>
<td>89,95</td>
<td>paypal</td>
<td>24</td>
</tr>
</tbody>
</table>
<p>Здесь лишь общие критерии, при выборе еще смотрел отзывы.<br />
А какой бы выбрали сервер Вы из этого списка?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/internet-biznes/vybor-vydelennogo-servera-s-besplatnoj-ustanovkoj/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Решение проблемы соединения mysql клиента с mysql-proxy</title>
		<link>http://www.madweb.ru/programmirovanie/reshenie-problemy-soedineniya-mysql-klienta-s-mysql-proxy/</link>
		<comments>http://www.madweb.ru/programmirovanie/reshenie-problemy-soedineniya-mysql-klienta-s-mysql-proxy/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 04:19:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql-proxy]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=123</guid>
		<description><![CDATA[Уже много лет существует проблема у консольного клиента mysql при соединении с сервером mysql, который запущен на локальном компьютере, но на другом порте, отличном от 3306. Например, если вы хотите соединиться с

# mysql -P 3307 -uroot-pXXX

то получите соединение с основным сервером, который запущен на стандартном порту. Программа mysql упорно игнорирует &#8211;port и -P.
В документации утверждается, [...]]]></description>
			<content:encoded><![CDATA[<p>Уже много лет существует проблема у консольного клиента mysql при соединении с сервером mysql, который запущен на локальном компьютере, но на другом порте, отличном от 3306. Например, если вы хотите соединиться с<br />
<code><br />
# mysql -P 3307 -uroot-pXXX<br />
</code><br />
то получите соединение с основным сервером, который запущен на стандартном порту. Программа mysql упорно игнорирует <em>&#8211;port</em> и <em>-P</em>.</p>
<p>В документации утверждается, что нужно указать опцию <em>&#8211;protocol=TCP</em>, но и это не всегда помогает. Баги висят аж с 2006 года. Разработчики кричат, что когда соединение идет на локалхост клиент всегда коннектится к mysql.sock, т.е. используется опция <em>&#8211;protocol=socket</em>.</p>
<p>Когда я установил mysql-proxy и запустил его на порту 4040, то никак не мог к нему подключиться. Пришлось поменять в конфиге mysql-proxy строки<br />
<code><br />
proxy-address=127.0.0.2:4040<br />
admin-address=127.0.0.2:4041<br />
</code><br />
адреса 127.0.0.х являются алиасами к 127.0.0.1 так, что это работает отлично. Подключиться можно так:<br />
<code><br />
# mysql -P 4040 -h 127.0.0.2 -uroot-pXXX<br />
</code></p>
<p>Можно еще попробовать поменять my.cnf и запустить  mysql на 4040, а mysql-proxy настроить на дефолтный 3306. Может кто еще знает способы попроще?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/programmirovanie/reshenie-problemy-soedineniya-mysql-klienta-s-mysql-proxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создаем шаблоны для своих Custom Post Types в WordPress</title>
		<link>http://www.madweb.ru/programmirovanie/sozdaem-shablony-dlya-svoix-custom-post-types-v-wordpress/</link>
		<comments>http://www.madweb.ru/programmirovanie/sozdaem-shablony-dlya-svoix-custom-post-types-v-wordpress/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 17:29:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sidebar]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=120</guid>
		<description><![CDATA[Для продолжения создания аукциона на WordPress нам нужно:
1) Добавить список последних лотов в сайдбар
2) Добавить список категорий лотов в сайдбар
3) Добавить облако меток лотов в сайдбар
4) Создать шаблон списка лотов
5) Создать шаблон одиночной страницы лота
6) Создать шаблон страницы архива по категориям лотов
7) Создать шаблон страницы архива по меткам лотов
Приступим&#8230;
Функция для отображения последних лотов (п. 1).
Данный [...]]]></description>
			<content:encoded><![CDATA[<p>Для продолжения создания <a href="http://www.madweb.ru/programmirovanie/vmesto-plagina-aukciona-dlya-wordpress-aukcion-rukami-na-custom-post-types/">аукциона на WordPress</a> нам нужно:</p>
<p>1) Добавить список последних лотов в сайдбар<br />
2) Добавить список категорий лотов в сайдбар<br />
3) Добавить облако меток лотов в сайдбар<br />
4) Создать шаблон списка лотов<br />
5) Создать шаблон одиночной страницы лота<br />
6) Создать шаблон страницы архива по категориям лотов<br />
7) Создать шаблон страницы архива по меткам лотов</p>
<p>Приступим&#8230;</p>
<p><strong>Функция для отображения последних лотов (п. 1).</strong><br />
Данный код нужно вставить в functions.php</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="co1">//Последние лоты на аукционе</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> latest_lots<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">$query</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;post_type&#39;</span><span class="sy0">=&gt;</span><span class="st0">&#39;lots&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;post_status&#39;</span><span class="sy0">=&gt;</span><span class="st0">&#39;publish&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;posts_per_page&#39;</span> <span class="sy0">=&gt;</span> <span class="nu0">10</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">//Получаем 10 последних</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re1">$posts</span> <span class="sy0">=</span> &nbsp;get_posts<span class="br0">&#40;</span><span class="re1">$query</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">//выводим несортированный список</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; ?<span class="sy0">&gt;&lt;</span>ul <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;lots&quot;</span><span class="sy0">&gt;&lt;</span>?php &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">foreach</span> <span class="br0">&#40;</span> <span class="re1">$posts</span> <span class="kw1">as</span> <span class="re1">$post</span> <span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;?<span class="sy0">&gt;&lt;</span>li<span class="sy0">&gt;&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo get_permalink($post-&gt;ID);?&gt;&quot;</span><span class="sy0">&gt;&lt;</span>?php <span class="kw3">echo</span> <span class="re1">$post</span><span class="sy0">-&gt;</span><span class="me1">post_title</span>?<span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;&lt;/</span>li<span class="sy0">&gt;&lt;</span>?php</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;?<span class="sy0">&gt;&lt;/</span>ul<span class="sy0">&gt;&lt;</span>?</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Далее добавляем в sidebar.php код  (п. 2)</strong>:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>li<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>h3 <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;widget-title&quot;</span><span class="sy0">&gt;&lt;</span>?php _e<span class="br0">&#40;</span><span class="st0">&#39;Latest lots&#39;</span><span class="sy0">,</span> <span class="st0">&#39;twentyten&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span>?<span class="sy0">&gt;&lt;/</span>h3<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span> latest_lots<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;/</span>li<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>Во-первых вместо _e(&#8217;Latest lots&#8217;, &#8216;twentyten&#8217;); можно написать просто по-русски, тогда не потребуется редактировать файл перевода. Во-вторых можно создать Widget, что бы можно было включить блок в админке. Но на этих моментах пока не буду останавливаться подробно, т.к. про это очень много написано статей. В следующей статье займемся шаблонами для отображения самих лотов. Потребуется список дополнительных полей, поэтому всех заинтересованных приглашаю высказаться.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/programmirovanie/sozdaem-shablony-dlya-svoix-custom-post-types-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Вместо плагина аукциона для Wordpress – аукцион руками на Custom post types</title>
		<link>http://www.madweb.ru/programmirovanie/vmesto-plagina-aukciona-dlya-wordpress-aukcion-rukami-na-custom-post-types/</link>
		<comments>http://www.madweb.ru/programmirovanie/vmesto-plagina-aukciona-dlya-wordpress-aukcion-rukami-na-custom-post-types/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 17:38:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[post types]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[аукцион]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=113</guid>
		<description><![CDATA[В связи с интересом к плагину для создания аукциона на блоге wordpress, который не было возможности доработать из-за недостатка времени и большого количества ошибок в оригинальной версии, я решил помочь желающим сделать аукцион руками, без плагина.  Для этого предлагаю внести изменения в файлы шаблона. Нужно добавить ряд функций и несколько файлов &#8211; шаблонов отображения [...]]]></description>
			<content:encoded><![CDATA[<p>В связи с интересом к <a href="http://www.madweb.ru/programmirovanie/plagin-aukciona-dlya-wordpress/">плагину для создания аукциона</a> на блоге wordpress, который не было возможности доработать из-за недостатка времени и большого количества ошибок в оригинальной версии, я решил помочь желающим сделать аукцион руками, без плагина.  Для этого предлагаю внести изменения в файлы шаблона. Нужно добавить ряд функций и несколько файлов &#8211; шаблонов отображения самого аукциона и форму добавления лота. Если в ходе обсуждений вместе придем к тому, что нужен-таки плагин, значит скомпилирую полученный код и выложу в репозитарий плагинов Wordpress.</p>
<p>Делать будем вместе с нуля и по шагам. Идея основана на новшестве WordPress 3.0 &#8211; <a href="http://codex.wordpress.org/Post_Types">Custom Types</a>, которое позволяет добавить свои типы записей, рубрик и меток.  Таким образом, мы получим тип записи &#8211; <strong>Лоты аукционов</strong>, типы категорий &#8211; <strong>Категории аукционов</strong>, типы меток &#8211; <strong>Метки аукционов</strong>. На тип данных можно выставить необходимые права, что бы зарегистрированные пользователи могли добавлять лоты, но не могли писать и редактировать записи в блоге.</p>
<p>Для начала нужно поэкспериментировать с типами данных, поэтому я создал <a href="http://au.madweb.ru">демо-сайт</a> для аукциона и добавил одну функцию в файл functions.php в теме блога.</p>
<p><strong>Вот код функции:</strong></p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* Функция регистрирует:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp;@ тип записей lots, которая будет использоваться для хранения лотов аукциона, </span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp;@ категории и меток для лотов</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp;@ выставляет права для различных типов пользователей</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp;*/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> types_create<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">//Сбросить </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;flush_rewrite_rules<span class="br0">&#40;</span> <span class="kw2">false</span> <span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Регистрируем тип записей lots [см.: http://codex.wordpress.org/Function_Reference/register_post_type ]</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;register_post_type<span class="br0">&#40;</span> <span class="st0">&#39;lots&#39;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;label&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Аукцион&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;labels&#39;</span> <span class="sy0">=&gt;</span> <span class="kw3">array</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;name&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Лоты&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;singular_name&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Лот&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;add_new&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Добавить лот&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;add_new_item&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Добавить лот&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;new_item&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Добавить лот&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;edit_item&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Редактировать лот&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;view_item&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Посмотреть&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="st0">&#39;search_items&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Поиск&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;capability_type&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;post&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Создаем свои правила для раздачи прав на редактирование, удаление, публикацию</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;capabilities&#39;</span> <span class="sy0">=&gt;</span> <span class="kw3">array</span><span class="br0">&#40;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;edit_post&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;edit_lot&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;edit_posts&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;edit_lots&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;delete_posts&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;delete_lots&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;read&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;read_lot&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;edit_published_posts&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;edit_published_lots&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;delete_published_posts&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;delete_published_lots&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;edit_others_posts&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;edit_others_lots&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;delete_others_posts&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;delete_others_lots&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&#39;publish_posts&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;publish_lots&#39;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#41;</span><span class="sy0">,</span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;taxonomies&#39;</span> <span class="sy0">=&gt;</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;lot_cat&#39;</span><span class="sy0">,</span><span class="st0">&#39;lot_tag&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;hierarchical&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">false</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;public&#39;</span> &nbsp;<span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;_builtin&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">false</span><span class="sy0">,</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;_edit_link&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;post.php?post=%d&#39;</span><span class="sy0">,</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;query_var&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;supports&#39;</span> <span class="sy0">=&gt;</span> <span class="kw3">array</span><span class="br0">&#40;</span> <span class="st0">&#39;title&#39;</span><span class="sy0">,</span> <span class="st0">&#39;editor&#39;</span><span class="sy0">,</span> <span class="st0">&#39;author&#39;</span><span class="sy0">,</span> <span class="st0">&#39;thumbnail&#39;</span><span class="sy0">,</span> <span class="st0">&#39;excerpt&#39;</span><span class="sy0">,</span> <span class="st0">&#39;custom-fields&#39;</span><span class="sy0">,</span> <span class="st0">&#39;comments&#39;</span><span class="sy0">,</span> <span class="st0">&#39;revisions&#39;</span> <span class="br0">&#41;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">Регистрируем категории лотов см: http://codex.wordpress.org/Function_Reference/register_taxonomy</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">*/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;register_taxonomy<span class="br0">&#40;</span><span class="st0">&#39;lot_cat&#39;</span><span class="sy0">,</span> <span class="st0">&#39;lots&#39;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;label&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Категории лотов&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;public&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;show_in_nav_menus&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;show_ui&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;hierarchical&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;rewrite&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">Регистрируем теги для лотов см: http://codex.wordpress.org/Function_Reference/register_taxonomy</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">*/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;register_taxonomy<span class="br0">&#40;</span><span class="st0">&#39;lot_tag&#39;</span><span class="sy0">,</span> <span class="st0">&#39;lots&#39;</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;label&#39;</span> <span class="sy0">=&gt;</span> <span class="st0">&#39;Метки лотов&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;public&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;show_in_nav_menus&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;show_ui&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;hierarchical&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">false</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="st0">&#39;rewrite&#39;</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;register_taxonomy_for_object_type<span class="br0">&#40;</span><span class="st0">&#39;lot_tag&#39;</span><span class="sy0">,</span> <span class="st0">&#39;lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;register_taxonomy_for_object_type<span class="br0">&#40;</span><span class="st0">&#39;lot_cat&#39;</span><span class="sy0">,</span> <span class="st0">&#39;lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$GLOBALS</span><span class="br0">&#91;</span><span class="st0">&#39;wp_rewrite&#39;</span><span class="br0">&#93;</span><span class="sy0">-&gt;</span><span class="me1">flush_rules</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* Права для админа */</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span> <span class="sy0">=&amp;</span> get_role<span class="br0">&#40;</span><span class="st0">&#39;administrator&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_lot&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;publish_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_published_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* Права для редактора */</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span> <span class="sy0">=&amp;</span> get_role<span class="br0">&#40;</span><span class="st0">&#39;editor&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_lot&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;publish_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_published_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* Права для автора */</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$role</span> <span class="sy0">=&amp;</span> get_role<span class="br0">&#40;</span><span class="st0">&#39;author&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">remove_cap</span><span class="br0">&#40;</span><span class="st0">&#39;publish_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;unfiltered_html&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_lots&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$role</span><span class="sy0">-&gt;</span><span class="me1">add_cap</span><span class="br0">&#40;</span><span class="st0">&#39;edit_lot&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// &#8230; по аналогии можно дать права для пользователей участник и подписчик</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// добавляем тип данных при инициализации блога.</span></div>
</li>
<li class="li1">
<div class="de1">add_action<span class="br0">&#40;</span> <span class="st0">&#39;init&#39;</span><span class="sy0">,</span> <span class="st0">&#39;types_create&#39;</span><span class="sy0">,</span><span class="nu0">0</span> <span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>После добавления этого кода в functions.php, зашел в админку и увидел пункт &laquo;<strong>Лоты</strong>&laquo;, в котором есть подразделы <em>Лоты, Добавить лот, Категории лотов, Метки лотов</em>. Добавил лот и получил страницу с адресом:</p>
<p>http://au.madweb.ru/lots/реклама-на-сайте/</p>
<p>Можно добавить так же другие типы рубрик, например регионы/города, типы аукциона (т.е. Английский, Голландский) и т.д. Хранить дополнительные поля, такие как стартовая цена, блиц-цена, дата начала, дата окончания и т.п. можно в произвольных полях (post_meta).</p>
<p>Это уже можно протестировать и перейти к следующему шагу &#8211; шаблонам. Нужно будет сделать отображение ленты лотов, шаблоны самих лотов, а так же страницы архивов по категориям и меткам лотов (и других типов рубрик, если требуется). </p>
<p>Жду ваших вопросов и идей по функционалу аукциона.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/programmirovanie/vmesto-plagina-aukciona-dlya-wordpress-aukcion-rukami-na-custom-post-types/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Интернет-магазин спортивных товаров «BOXER».  Снаряжение в боксе</title>
		<link>http://www.madweb.ru/internet-biznes/internet-magazin-sportivnyx-tovarov-boxer-snaryazhenie-v-bokse/</link>
		<comments>http://www.madweb.ru/internet-biznes/internet-magazin-sportivnyx-tovarov-boxer-snaryazhenie-v-bokse/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 09:22:38 +0000</pubDate>
		<dc:creator>strelecolya</dc:creator>
				<category><![CDATA[Интернет-бизнес]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=105</guid>
		<description><![CDATA[Абсолютно все бои проводятся на прямоугольной площадке, сторонки, которой 5 и 6 метров, всякая сторона обхвачена несколькими канатами, обыкновенно, это 3-4 каната. Представленная площадка зовется ринг. Углы ринга снабжены так называемыми подушками со сменными обшивками.
Популярным снарядом есть мешок для бокса, с его подмогой можно наиболее оптимальным методом усовершенствовать личное мастерство. Основной значимостью мешка для отработки [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Абсолютно все бои проводятся на прямоугольной площадке, сторонки, которой 5 и 6 метров, всякая сторона обхвачена несколькими канатами, обыкновенно, это 3-4 каната. Представленная площадка зовется ринг. Углы ринга снабжены так называемыми подушками со сменными обшивками.</p>
<p style="text-align: justify">Популярным снарядом есть <a href="http://boxer-sl.com.ua/index.php?main_page=index&amp;cPath=2">мешок для бокса</a>, с его подмогой можно наиболее оптимальным методом усовершенствовать личное мастерство. Основной значимостью мешка для отработки ударов, обнаруживается развитие и умножение силы, его твердости и правильности. Лучшим манером на мешке для бокса тренируются прямые удары, снизу, боковые и те, что направлены в туловище противника.  боксерский мешок наполняется как можно более плотнее, наполнение может быть каким угодно, от песка, и металлические стружки, сейчас, чаще, применяют тряпье или кожаные обрезки. Наружная сторона мешка для бокса делается с очень крепких, это могут быть – кожа, кирза, ПВХ, или иные выносливые ткани.</p>
<p style="text-align: justify">Высота, диаметр и вес мешка для бокса не считаются неизменными единицами, 26кг до 70кг соответственно.</p>
<p style="text-align: justify">Следующим важным снарядом является груша для бокса, которая, груши для бокса часто более мелкие, и точка соприкосновения у груши боксерской одна, что позволяет ей обладать большей свободой движения.</p>
<p style="text-align: justify">Следующий снаряд,   -  боксерские лапы, они незаменимы для занятий с тренером. <a href="http://boxer-sl.com.ua/index.php?main_page=index&amp;cPath=7">Боксерские лапы</a> помогают вырабатывать удары прямые и их точность, еще затачивают знания боксера. Внешне, лапы боксерские выглядят как овальные подушки. Одна сторона боксерские лапы обладает крепежем, с помощью которого лапы для тренировок по боксу одеваются на руку.</p>
<p style="text-align: justify">Когда рассматривать удары, то можно сказать, &#8211; по предписаниям, они производятся назначенной частью руки, стиснутым кулаком, руки облачают в, боксерские перчатки, для ослабления давления на руку, предотвращения от ушибов и поломов рук.</p>
<p style="text-align: justify">Еще в занятиях боксом и тренировках применяют, многообразные защиты и тренировочное снаряжение, что позволяет лучшим образом подготовить спортсмена и развить его профессиональные свойства.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/internet-biznes/internet-magazin-sportivnyx-tovarov-boxer-snaryazhenie-v-bokse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Куда добавить статью. Блоги для бесплатной публикации статей.</title>
		<link>http://www.madweb.ru/internet-biznes/kuda-dobavit-statyu-blogi-dlya-besplatnoj-publikacii-statej/</link>
		<comments>http://www.madweb.ru/internet-biznes/kuda-dobavit-statyu-blogi-dlya-besplatnoj-publikacii-statej/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 15:58:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интернет-бизнес]]></category>
		<category><![CDATA[блоги]]></category>
		<category><![CDATA[ссылки]]></category>
		<category><![CDATA[статьи]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=82</guid>
		<description><![CDATA[Привожу несколько сайтов, на которых можно разместить статьи с прямыми ссылками бесплатно. Это не совсем каталоги статей, скорее &#171;блоги статей&#187;. Т.е. В большинстве это блоги на WordPress и часть &#8211; новостники на Pligg. Все прекрасно знакомы с этими движками, поэтому можно приступать.
Пресс-релизы:
www.start-partnership.com
matriks.ws
www.realty-key.info/news/
www.matriks.ws
Новости:
www.is-moskvy.ru
www.vse-pishut.ru
www.business-key.com

Просто различные тематические блоги:
www.auto-kurgan.info
www.travel-roads.info
www.defining-blog.ru
stereo-surround.com
www.tehnika-ludyam.ru
На каждом сайте есть правила, поэтому рекомендуется им следовать. 
В качестве [...]]]></description>
			<content:encoded><![CDATA[<p>Привожу несколько сайтов, на которых можно разместить статьи с прямыми ссылками бесплатно. Это не совсем каталоги статей, скорее &laquo;блоги статей&raquo;. Т.е. В большинстве это блоги на WordPress и часть &#8211; новостники на Pligg. Все прекрасно знакомы с этими движками, поэтому можно приступать.</p>
<p><strong>Пресс-релизы:</strong><br />
<a href="http://www.start-partnership.com/">www.start-partnership.com</a><br />
<a href="http://matriks.ws/">matriks.ws</a><br />
<a href="http://www.realty-key.info/news/">www.realty-key.info/news/</a><br />
<a href="http://www.matriks.ws">www.matriks.ws</a></p>
<p><strong>Новости:</strong><br />
<a href="http://www.is-moskvy.ru/">www.is-moskvy.ru</a><br />
<a href="http://www.vse-pishut.ru/">www.vse-pishut.ru</a><br />
<a href="http://www.business-key.com">www.business-key.com</a><br />
<span id="more-82"></span></p>
<p><strong>Просто различные тематические блоги:</strong><br />
<a href="http://www.auto-kurgan.info">www.auto-kurgan.info</a><br />
<a href="http://www.travel-roads.info">www.travel-roads.info</a><br />
<a href="http://www.defining-blog.ru/">www.defining-blog.ru</a><br />
<a href="http://stereo-surround.com/">stereo-surround.com</a><br />
<a href="http://www.tehnika-ludyam.ru/">www.tehnika-ludyam.ru</a></p>
<p>На каждом сайте есть правила, поэтому рекомендуется им следовать. </p>
<p>В качестве бонуса прилагаю несколько ссылок на новые социалки: </p>
<p><strong>Микроблоги:</strong><br />
<a href="http://ktonnel.ru">KTonnel</a><br />
<a href="http://keepter.com">Keepter</a><br />
<a href="http://yenote.ru">ЙеНот</a> &#8211; сам читает RSS каналы и публикует их в микроблог</p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/internet-biznes/kuda-dobavit-statyu-blogi-dlya-besplatnoj-publikacii-statej/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Размещение ссылок на ваш блог в Twitter</title>
		<link>http://www.madweb.ru/internet-biznes/razmeshhenie-ssylok-na-vash-blog-v-twitter/</link>
		<comments>http://www.madweb.ru/internet-biznes/razmeshhenie-ssylok-na-vash-blog-v-twitter/#comments</comments>
		<pubDate>Thu, 06 May 2010 14:18:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Интернет-бизнес]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.madweb.ru/?p=80</guid>
		<description><![CDATA[Автор блога &#171;SMO и SEO продвижение &#187; предлагает размещение ссылок в ряде своих микроблогов на различных сервисах, включая Twitter, friendfeed, tumblr
и т.д.  А в рамках действующей акции, которая проводится специально для блоггеров, которые пишут на темы заработка, разработки, раскрутки сайтов и т.п., размещение проводится бесплатно .  
Еще хочу дополнить, что недавно обнаружил новый, [...]]]></description>
			<content:encoded><![CDATA[<p>Автор блога &laquo;<a href="http://smo-seo.ru/">SMO и SEO продвижение </a>&raquo; предлагает размещение ссылок в ряде своих микроблогов на различных сервисах, включая Twitter, friendfeed, tumblr<br />
и т.д.  А в рамках действующей акции, которая проводится специально для блоггеров, которые пишут на темы заработка, разработки, раскрутки сайтов и т.п., размещение проводится <strong>бесплатно </strong>.  </p>
<p><em>Еще хочу дополнить, что недавно обнаружил новый, но уже действующий и развивающийся сервис <a href="http://keepter.com">Keepter.com</a>, который поддерживает API, примерно такой же как Twitter.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.madweb.ru/internet-biznes/razmeshhenie-ssylok-na-vash-blog-v-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

