<?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>afainu.action &#187; WP2.9</title>
	<atom:link href="http://act.affai.com/archives/tag/wp2-9/feed/" rel="self" type="application/rss+xml" />
	<link>http://act.affai.com</link>
	<description>写真とプログラミングにチャレンジ</description>
	<lastBuildDate>Sun, 25 Jul 2010 15:08:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WP2.9 とタグクラウド</title>
		<link>http://act.affai.com/archives/20091223160815/</link>
		<comments>http://act.affai.com/archives/20091223160815/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 07:08:15 +0000</pubDate>
		<dc:creator>afainu</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Upgrade]]></category>
		<category><![CDATA[WP2.9]]></category>

		<guid isPermaLink="false">http://act.affai.com/?p=210</guid>
		<description><![CDATA[WordPress の新バージョンがリリースされたので、いつものようにポチッと自動アップグレード。今のところ何の問題もなく動いているようです。アップグレードの前には念のためデータベースとファイルのバックアップをとっておき&#8230; <a href="http://act.affai.com/archives/20091223160815/">続きを読む <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>WordPress の新バージョンがリリースされたので、いつものようにポチッと自動アップグレード。<del datetime="2009-12-23T15:09:07+00:00">今のところ何の問題もなく動いているようです。</del>アップグレードの前には念のためデータベースとファイルのバックアップをとっておきましょう。</p>
<p><ins datetime="2009-12-23T15:09:07+00:00">(2009-12-24 追記) wp-cron が働かなくなるバグがあるようです。このため、予約投稿や ping 送信、サイトマップの作成が行われないことがあります。wp-includes/http.php を trunk に入れ替えることで修正できます。</ins></p>
<p>WP2.9 からの新機能としてはゴミ箱だったりメディア周りだったりするわけですが、私には特に関係ないかなぁという感じです。（新機能について詳しくは公式サイトの記事：<a href="http://ja.wordpress.org/2009/12/19/wordpress-2-9/">WordPress | 日本語 » WordPress 2.9</a> をご覧ください。）</p>
<p>アップグレード後に自分のサイトにアクセスしてみて気付いたのですが、タグクラウド周りにも変更が加えられているようです。詳しい説明があまりないみたいなので、私が気付いたところを簡単にまとめてみようと思います。</p>
<p>タグクラウドでは、各タグのフォントサイズが使用頻度に応じて指定されています。これまではこのフォントサイズの計算はタグのカウントに線形比例する形で行われていました。コアファイル（wp-includes/category-template.php）でフォントサイズの計算式は、</p>
<pre title="PHP"><code>$smallest + ( ( $count - $min_count ) * $font_step )</code></pre>
<p>となっています。ここで、<code>$count</code> はこのタグの出現回数、<code>$smallest</code> は最小フォントサイズ、<code>$min_count</code> は全タグ中の最小出現回数で、<code>$font_step</code> は</p>
<pre title="PHP"><code>$font_step = ( $largest - $smallest ) / ( $max_count - $min_count );</code>

	<code>$smallest</code> と <code>$min_count</code> は前出、
	<code>$largest</code> は最大フォントサイズ、<code>$max_count</code> は全タグ中の最大出現回数
	変数・計算式は分かりやすくなるよう少し変更しています</pre>
<p>で計算されます。</p>
<p>この計算方法は直観的で非常に簡単で分かりやすいのですが、問題もあります。１つまたは少数のタグの出現回数が突出して多い場合、それらが非常に大きなフォントで表示され、それ以外のタグは非常に小さくなってしまいます。私のブログの場合、アップグレード直前の状態では &#8220;KissX2&#8243; タグの使用回数が飛びぬけているため、このタグのみが最大サイズになり、その他のタグは使用回数に関わらずほぼ最小サイズ付近になってしまっていました。このような状態になってしまっているブログは多いと思われます。</p>
<p>WP2.9 でも実はこの部分のコードは変わっていません。ただし、<code>$count</code> が以下のように変換されているのです。</p>
<pre title="PHP"><code>foreach ( (array) $tags as $key =&gt; $tag ) {
	$real_counts[ $key ] = $tag-&gt;count;
	$counts[ $key ] = $topic_count_scale_callback($tag-&gt;count);
}</code></pre>
<p><code>$count</code> はコールバック関数により変換され、これまでの <code>$count</code> は <code>$real_count</code> に格納されています。この <code>$topic_count_scale_callback</code> はユーザーが任意の関数を指定できる引数ですが、デフォルトでは以下の関数になっています。</p>
<pre title="PHP"><code>function default_topic_count_scale( $count ) {
	return round(log10($count + 1) * 100);
}</code></pre>
<p>つまり対数関数で変換されており、少ない出現回数の部分を持ち上げる格好になっています。これにより、今までは小さいフォントサイズに埋もれていたタグが適切に（少なくとも私のブログでは）重みづけされて、より見やすいタグクラウドになりました。さらに、この変換が気に入らない場合は自分の好きな関数を使って重みづけの計算を変更することもできます。もし以前のままの計算方法が良ければ、テーマ中の <code>wp_tag_cloud</code> 関数を呼び出す部分を以下のようにすればよいわけです（他の引数は省略しています）。</p>
<pre title="PHP"><code>&lt;?php
function my_topic_count_scale ( $count ) {
	return $count;
}
wp_tag_cloud('topic_count_scale_callback=my_topic_count_scale');
?&gt;</code></pre>
<p>以上、WP2.9 におけるタグクラウドに関する変更点を調べてみましたが、他にもいろいろと細かな変更が加えられているみたいですので、気が向いたら（必要になったら）また調べてみようと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://act.affai.com/archives/20091223160815/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
