<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>Office L &#187; WP Plugin Hacks</title>
	<atom:link href="http://officel.biz/wp-plugin-hack/feed" rel="self" type="application/rss+xml" />
	<link>http://officel.biz</link>
	<description>IT系なんでも屋</description>
	<lastBuildDate>Wed, 17 Feb 2010 15:30:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://officel.biz/wp-plugin-hack/feed" />
		<item>
		<title>[WPPH06]カテゴリ一覧の投稿数表示の丸括弧を角括弧に変更するプラグイン</title>
		<link>http://officel.biz/wordpress/wpph06-list-cat-cnt-bracket.htm</link>
		<comments>http://officel.biz/wordpress/wpph06-list-cat-cnt-bracket.htm#comments</comments>
		<pubDate>Wed, 17 Feb 2010 15:30:48 +0000</pubDate>
		<dc:creator>管理人</dc:creator>
				<category><![CDATA[WP Plugin Hacks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://officel.biz/?p=84</guid>
		<description><![CDATA[コアハックのネタをプラグインでやるとどうなるか、みたいな話。]]></description>
			<content:encoded><![CDATA[				<p>先に書いた<a href="http://officel.biz/wordpress/wpch-vol-05.htm">[WPCH vol.05]RE:カテゴリー一覧の書式を変える</a>のおまけとして、コアソースは修正せずにプラグインで対処する方法もメモしておきます。いつものように自己責任でどうぞご自由にお使いください。</p>
				<p>正規表現をもうちょっといじろうかと思ったんだけどカテゴリとアーカイブで出力が（ちょっとだけ）違うので面倒になってやめましたｗ 別々の function を書いて正規表現を別にすればもうちょっと正確に書いて速度上げられるかなとも思うけど、ぶっちゃけ誰も使わないんじゃないか、とか。</p>
				<pre>
&lt;?php
/*
Plugin Name: wp_list_category count bracket changer
Plugin URI: http://officel.biz
Description: wp_list_category(wp_list_cat,WP_Widget_Categories含む)の投稿数表示の()を[]に変更する
Version: 1.1.0
Author: Y.Nishimura
Author URI: http://officel.biz/
*/

function listcatcntbracket($content) {
	return preg_replace("/\((\d*)\)/", "[$1]", $content);
}
add_filter('wp_list_categories', 'listcatcntbracket');

// アーカイブも変更したいならついでにこれを使う
// add_filter('get_archives_link', 'listcatcntbracket');
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://officel.biz/wordpress/wpph06-list-cat-cnt-bracket.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://officel.biz/wordpress/wpph06-list-cat-cnt-bracket.htm" />
	</item>
		<item>
		<title>[WPPH05]WordPressのRSSなどのフィード取得を制限する</title>
		<link>http://officel.biz/wp-plugin-hack/wpph05-wp-rss-limit.htm</link>
		<comments>http://officel.biz/wp-plugin-hack/wpph05-wp-rss-limit.htm#comments</comments>
		<pubDate>Sun, 10 Jan 2010 00:00:41 +0000</pubDate>
		<dc:creator>管理人</dc:creator>
				<category><![CDATA[WP Plugin Hacks]]></category>

		<guid isPermaLink="false">http://officel.biz/?p=82</guid>
		<description><![CDATA[RSSの出力を制限して、好き勝手やってみましょう。という試み。]]></description>
			<content:encoded><![CDATA[				<p>気がつけば年もあけて２０１０年ですね。本年もどうぞよろしくお願いします。なお、昨年は不幸が重なったため、喪中につき年賀状等の送付を見送らせていただきました。平にご容赦ください。</p>
				<p>さて、WordPressはAtom,RSS,RDFなどの形式でフィードを配信することができますが、サイトによってはフィードを提供したくない、制限したい場合などがあります。例えばAtomだけ使ってもらいたいとか、自分用にRSSをカスタマイズしたいとか、RDFだけ別なことに使いたいとか。</p>
				<p>単純には、wp-atom.php,wp-rss.php,wp-rss2.php,wp-rdf.phpを削除又はリネームなどすれば、自分も含めそのフィードを利用できなくすることができます。が、当たり前というか、自分は利用したいけど、他の人には使ってもらいたくないから制限したいわけなので、ちょっと考えて、URLにセキュリティ用のキーを埋め込んでいる場合だけフィードを返し、それ以外の場合はフィードを返さないようにする、というのを実装してみました。</p>
				<pre>
&lt;?php
/*
Plugin Name: RSS Limiter
Plugin URI: http://officel.biz
Description: RSS取得に、指定したキーと値を必要とするようにする
Version: 1.0.0
Author: Y.Nishimura
Author URI: http://officel.biz/
*/

function rsslimiter() {
	// 文字列 sk と OK を好きな値に変更して使う。
	// この状態のURL は、 http://～/?feed=rss&#038;sk=OK
	if ( $_GET['sk'] === 'OK'){
		// 指定のキーと値があっているなら何もしない
	}else{
		// あっていないなら本来のrss2処理を実行しない。
		remove_action('do_feed_rss2','do_feed_rss2');
	}
}
// 本来のrss2処理よりも先に(優先度9)処理するところが大事。
add_action('do_feed_rss2', 'rsslimiter',9);
?&gt;
</pre>
				<p>これにより、普通に ?feed=rss2 にアクセスすると、真っ白になり（前述のようにwp-rss2.phpを避けた場合も同じく真っ白になる）、URL中に &#038;sk=OK を付けた場合にはRSS2でデータが返るようになります。こうしてしまえば、RSS2の中身（wp-includes/feed-rss2.php）を好きなようにカスタマイズしても、他の利用者には見せることなく済みます。ちなみに、RSS2以外は、&#8217;do_feed_rdf&#8217; , &#8216;do_feed_rss&#8217; , &#8216;do_feed_atom&#8217; なので、適宜直して使えば、どうにでもできます。</p>
				<p>コメントにも書いていますが、本来の処理 &#8216;do_feed_ほにゃらら&#8217; よりも先に実行させる必要があるので、優先度を小さい数字にするのが大事なポイントです。</p>
				<p>改善点のお勧めは、remove_action した際に、レスがなくなってしまって真っ白になるのを防ぐために、リダイレクトでホームに飛ばすとか、404にするとかが挙げられます。また、キーと値をフォームから入力可能にしてDBにオプションとして保持させることもできます。もっとも、リソースを無駄にするだけなので、このようにプラグインに直接書いたほうが早くていいと思いますが。</p>
				<p>注意点としては、フィードの出力は一度行われると一定時間が経過するまで内容が変化せず、テスト確認がしにくい、などが挙げられます。これは、新規投稿を行うか、既存の投稿ステータスを変更してから公開中に戻すなど、投稿情報を変更することで即時反映させることができます。RSSテンプレートを修正した場合も同じです。</p>
				<p>日中思いつきで、というか、<a href="http://kanji.uows.jp/">漢字読めるかな？</a>のフィードを制限しようかなと思って作ってみました。いつものように自己責任でご自由にお使いください。</p>
]]></content:encoded>
			<wfw:commentRss>http://officel.biz/wp-plugin-hack/wpph05-wp-rss-limit.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://officel.biz/wp-plugin-hack/wpph05-wp-rss-limit.htm" />
	</item>
		<item>
		<title>[WPPH04]category_description の p 要素を出力しないようにするには</title>
		<link>http://officel.biz/wordpress/wpph04-category_description-no-p.htm</link>
		<comments>http://officel.biz/wordpress/wpph04-category_description-no-p.htm#comments</comments>
		<pubDate>Wed, 18 Nov 2009 23:00:33 +0000</pubDate>
		<dc:creator>管理人</dc:creator>
				<category><![CDATA[WP Plugin Hacks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://officel.biz/?p=81</guid>
		<description><![CDATA[WordPress はアクションフックやフィルターフックでいろいろできるけど、どこで何をフックすればいいかわかりにくいのが悩みどころ。category_description() の不要なp要素を取り除きたい、という話があったので調べてみました。]]></description>
			<content:encoded><![CDATA[				<p>昼間に Twitter で category_description() が不要な&lt;p&gt;要素をつけて出力するのがどうこう、というつぶやきを見たので、除去してみました。（もちろん本人には既にメールで説明済み）</p>
				<p>確かに自前でキレイな html を出力しようと思ったら、&lt;p&gt;を勝手につけるのやめて欲しいですよね。<br />
				というわけで category_description() をちょっと追ってみたのでメモ。<br />
				バージョンは WordPress 2.8.5 です。まだ 2.8.6 にしてない（汗</p>
				<h2>結論１</h2>
				<p>function.php とかに</p>
				<pre>
remove_filter('term_description','wpautop');
</pre>
				<p>って書いておけばとりあえず &lt;p&gt; は出力されなくなります。</p>
				<p>ただ、term_description フックだと、tag_description() もひっかけてしまいます。。。</p>
				<p>現状ではテーマ中に tag_description() を書いてるとか、そもそもタグに説明文つけてるとか、あんまり多くもないと思うので別にかまわない気もするんだけど。</p>
				<p>そもそも category_description() にちゃんとフックがあればいいのに、とか。（別関数を直接 return する書き方になっているのでフックはない。はず。）</p>
				<p>ちなみにきちんと調べてないけど、 term_description フックは今のところタグとカテゴリしか使ってないっぽいので他は大丈夫みたい。</p>
				<h2>結論２</h2>
				<p>どうしても先のやり方に抵抗があるとか、部分的にどうにかしたい、しかもできるだけ何やってるかわかりやすくテーマに書き込んでおきたい、というレアな人には、テーマ中で（もちろんis_category()のチェックした中で）</p>
				<pre>
&lt;?php
$a = category_description();
$a = substr($a,3);
$a = substr($a,0,-5);
echo $a;
?&gt;
</pre>
				<p>てゆー感じにすると、いいかなと。</p>
				<p>説明は要らない気もするけど、<br />
				category_description() の値を変数 $a につっこんで、<br />
				先頭の&lt;p&gt;（これが3バイト）と、<br />
				最後の&lt;/p&gt;（改行コード込みで後ろから5バイト）を取り除いて<br />
				 echo してあげると。</p>
				<p>こんな面倒なことするくらいなら先の remove_filter 使うほうが断然楽だと思うけどｗ</p>
				<h2>結論３</h2>
				<p>ぐぐったら出てきたネタ。</p>
				<p>２と同じようにテンプレート中で、オブジェクトを使って直接値だけ引っ張ってくる方式。<br />
				echo $category->category_description; みたいなの。</p>
				<p>でももしかしてこれだと、wptexturize とか、convert_chars フックも使われない気がするんだけど、大丈夫なのかな？<br />
				いや、もちろん自分で入力したカテゴリの説明文だから、そんなにひどい変換が必要な文字も入れない気はするけれども。</p>
]]></content:encoded>
			<wfw:commentRss>http://officel.biz/wordpress/wpph04-category_description-no-p.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://officel.biz/wordpress/wpph04-category_description-no-p.htm" />
	</item>
		<item>
		<title>[WPPH03]Add-X-Hacker プラグインのバージョンアップ(Ver1.1.0)</title>
		<link>http://officel.biz/wordpress/wpph03-add-x-hacker-header-plugin.htm</link>
		<comments>http://officel.biz/wordpress/wpph03-add-x-hacker-header-plugin.htm#comments</comments>
		<pubDate>Thu, 15 Oct 2009 22:00:29 +0000</pubDate>
		<dc:creator>管理人</dc:creator>
				<category><![CDATA[WP Plugin Hacks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://officel.biz/?p=79</guid>
		<description><![CDATA[wp_headers フィルタフックを使ったお遊びプラグインをバージョンアップしました。X-Hacker ヘッダでこっそりメッセージを流してみるのも楽しいかも？！]]></description>
			<content:encoded><![CDATA[				<p>先月<a href="http://officel.biz/wordpress/wpph02_wp_headers.htm">お遊びで公開した、Add-X-Hacker plugin </a>をバージョンアップしました。</p>
				<p>明後日の１７日土曜日に開催する勉強会で、WordPress プラグインの作り方として紹介するために、管理画面を追加して、DBにデータを格納するようにしてみました。これ以上ないくらいコメントも入れてあるので、見れば誰にでもわかるだろうレベルになっていると思います。</p>
				<p>ちなみに、勉強会中でこのプラグインの問題点を問うて、考えたり勉強したりする時間をとるつもりなので、たくさんの問題というか、不備を抱えたままになっています。例えば、次のような問題です。</p>
				<ol>
				<li>改行が入力できてしまう。<br />
				わざと入力しなければ問題ないのですが、機能として改行を除去するようにすべきでしょう。なぜ改行が入るとまずいのかは勉強会で話します。</li>
				<li>エスケープされていない。<br />
				受け取ったデータを直接しまって、そのまま出力に使っているため、タグ記号やダブルクォーテーションなどの入力で画面が壊れます。入力しなければいいだけですけれども。</li>
				<li>日本語等も受け付けてしまう。<br />
				本来入っているべきではない（ヘッダとして出力されるべきでない）文字もそのまま入力できてしまうので、知らずに不適切な入力を行うと、困ったことになる人が出るかもしれません。</li>
				<li>入力を空にしてもヘッダを出力してしまう。<br />
				値が入力されていないなら、ヘッダラインとして出力すべきではないでしょう。</li>
				</ol>
				<p>お遊び程度の簡単なプラグインといえども、いろいろな問題を抱える可能性があることを示してみました。勉強会ではこれらについて参加者と話し合いながら理解を深めてもらう予定です。</p>
				<p>で、最後に、いつものように <a href="http://dl.getdropbox.com/u/350637/WordPress%20Plugin/addxhacker.php">Add-X-Hacker プラグイン</a>をダウンロードして、pluginsディレクトリにアップロードして、管理画面から有効化して使ってください。<a href="http://officel.biz/wordpress/wordpress-plugin-hacks-vol01.htm">初回同様</a>自己責任でお好きなようにどうぞ。前述の問題点等に気をつけて、書き直してみるのもいいですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://officel.biz/wordpress/wpph03-add-x-hacker-header-plugin.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://officel.biz/wordpress/wpph03-add-x-hacker-header-plugin.htm" />
	</item>
		<item>
		<title>[WPPH02]WP2.8系の新しいフック wp_headers (If you&#8217;re reading thisってやつ。</title>
		<link>http://officel.biz/wordpress/wpph02_wp_headers.htm</link>
		<comments>http://officel.biz/wordpress/wpph02_wp_headers.htm#comments</comments>
		<pubDate>Sun, 13 Sep 2009 07:50:50 +0000</pubDate>
		<dc:creator>管理人</dc:creator>
				<category><![CDATA[WP Plugin Hacks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://officel.biz/?p=78</guid>
		<description><![CDATA[WP2.8で追加された、wp_headers フィルタフックで X-hacker ヘッダを出力してみよう！]]></description>
			<content:encoded><![CDATA[				<p>最近違うことやってて WordPress から遠ざかってたんですが、先日懐かしいネタというか、新しいネタというか、とにかくちょっとだけハックっぽい記事を見つけたので、プラグインにしておくかと思い立って作ってみました。</p>
				<p><a href="http://www.1x1.jp/blog/2009/09/wordpress_http_heade.html">この記事</a>によると、WordPress.com では、HTTPレスポンスヘッダーに X-hacker ヘッダをつけているそうです。一般ユーザはあんまり見ない（であろう）レスポンスヘッダに文字を埋めとくなんて古典的なネタだけど、時代は回っているものなので、こういうのも原点回帰っぽくて面白いかなぁと。</p>
				<p>HTTPレスポンスヘッダに勝手なレスポンスをつける方法は大雑把に３つ、</p>
				<ol>
				<li>httpd.conf  に設定する</li>
				<li>.htaccess で設定する</li>
				<li>プログラムから出力する</li>
				</ol>
				<p>httpd.conf で設定するのがレスポンス的には早いわけだけど、WEBサーバの設定をそう簡単にいじれるわけでもないと思うのでまず無視（依頼があれば説明してもいいけど）。.htaccess に設定する方法は、WordPress ユーザなら（パーマリンク設定をしていれば）普通に使っているはずなので簡単かな？と思ったんだけど、うちの環境で試したら、モジュールが有効になってませんエラーが出てうまくいかなかった。同じようなことが他所でも発生するかもしれないのでこれも無視（<a href="http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/httpheader.html#Header">この辺見ればやりかたはわかる</a>）。というわけで、最後のプログラムから出力する、について説明します。</p>
				<p>WP2.8系は内部的にいろいろ変更が加えられていて、フィルタフック、アクションフックがたくさん追加されています。その中にwp_headersというフィルタフックがあって、WP本体の中ではsend_headersというかなり初期の段階で走るfunctionの中で使われています。ちなみにこのfunctionの中でX-Pingbackヘッダも出力されています。</p>
				<p>というわけで、このwp_headersフィルタに、好きなヘッダを追加してあげれば、wordpress.comと同じように、X-hackerヘッダを（誰でも）追加できるようになります。いちいち画面作ったりするのが面倒なので、直接プラグイン中の文面を修正して使ってください。</p>
				<pre title="plugins/addxhacker.php">
&lt;?php
/**
 * @package Add_X_Hacker
 * @author Y.Nishimura ( Office L )
 * @version 1.0.0
 */
/*
Plugin Name: Add X-Hacker Header
Plugin URI: http://officel.biz
Description: HTTPレスポンスヘッダに X-hacker ヘッダを追加する
Author: Y.Nishimura
Version: 1.0.0
Author URI: http://officel.biz/
*/

function addxhacker($content) {
	// 'test now' を If you're reading this,?のようにすればOK
	$headers = array('X-hacker' => 'test now');
	return array_merge($headers,$content);
}
add_filter('wp_headers', 'addxhacker');
?&gt;
</pre>
				<p>ネタとして会社さんなら特別入社窓口ページに飛ばすとか、個人でハッカー（のような）人とお友達になりたければ連絡先を入れてみるとか（おっと、くれぐれも自己責任で。連絡先なんか書いておいたらスパムの餌食になるかもしれないってことは忘れないで！）使い方は人それぞれですかね。</p>
				<p><a href="http://dl.getdropbox.com/u/350637/WordPress%20Plugin/addxhacker.php">addxheader.phpファイル</a>をダウンロードして、書き換えて、pluginsディレクトリにアップロードして、管理画面から有効化すると使えます。<a href="http://officel.biz/wordpress/wordpress-plugin-hacks-vol01.htm">前回同様</a>自己責任でお好きなようにどうぞ。</p>
]]></content:encoded>
			<wfw:commentRss>http://officel.biz/wordpress/wpph02_wp_headers.htm/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://officel.biz/wordpress/wpph02_wp_headers.htm" />
	</item>
		<item>
		<title>[WPPH01]新しいフィルタフックｗ next_posts_link_attributes / previous_posts_link_attributes</title>
		<link>http://officel.biz/wordpress/wordpress-plugin-hacks-vol01.htm</link>
		<comments>http://officel.biz/wordpress/wordpress-plugin-hacks-vol01.htm#comments</comments>
		<pubDate>Sat, 14 Feb 2009 11:00:23 +0000</pubDate>
		<dc:creator>管理人</dc:creator>
				<category><![CDATA[WP Plugin Hacks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://officel.biz/?p=74</guid>
		<description><![CDATA[WordPress の前後のリンクにアトリビュートを追加することが簡単にできるようになりました！]]></description>
			<content:encoded><![CDATA[				<p>WordPress が過日2.7にバージョンアップして（今は既に2.7.1になっている）、当サイトを含め手持ちのサイトもバージョンアップしたのですが、コアファイルに手を入れていた部分が飛んでしまったのを機に、アプリケーションフックで対応できるものをプラグイン化して対処してみようという試み。</p>
				<p>今回のターゲットは、前後へのリンクのアトリビュートです。テーマ中で言うなら posts_nav_link タグ付近です。</p>
				<p>通常のリンク、ヘッダやフッタやサイドバーに出したいリンクはテーマファイル中で編集すれば好きなアクセスキーをセットすることができますね。</p>
				<pre title="通常のリンク">
&lt;h1&gt;&lt;a href="&lt;?php echo get_option('home'); ?&gt;/"&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/a&gt;&lt;/h1&gt;
これは
&lt;h1&gt;&lt;a href="&lt;?php echo get_option('home'); ?&gt;<span style="color:red;">accesskey="0"</span> /"&gt;&lt;?php bloginfo('name'); ?&gt;&lt;/a&gt;&lt;/h1&gt;
のようにすれば簡単にアクセスキーを追加できます。
</pre>
				<p>ただ、投稿（POST）の前後へのナビゲーションリンクは、通常下記のようになっていて、同様の手段ではセットすることができませんでした。</p>
				<pre title="前後へのナビゲーション">
&lt;div class="navigation"&gt;
	&lt;div class="alignleft"&gt;&lt;?php next_posts_link(__('&amp;laquo; Older Entries', 'kubrick')) ?&gt;&lt;/div&gt;
	&lt;div class="alignright"&gt;&lt;?php previous_posts_link(__('Newer Entries &amp;raquo;', 'kubrick')) ?&gt;&lt;/div&gt;
&lt;/div&gt;
や、
&lt;?php posts_nav_link(' | ', 'Newer', 'Older'); ?&gt;
などがありますが、いずれもアンカー中のアトリビュートは指定できませんでした。
</pre>
				<p>簡単な回避策として、バージョン 2.6 までは、wp-includes/link-template.php 中の function next_posts_link / previous_posts_link を、下記のように修正することで対応していました。</p>
				<pre title="next_post_link を修正">
function next_posts_link($label='Next Page &amp;raquo;', $max_page=0) {
	global $paged, $wp_query;
	if ( !$max_page ) {
		$max_page = $wp_query-&gt;max_num_pages;
	}
	if ( !$paged )
		$paged = 1;
	$nextpage = intval($paged) + 1;
	if ( (! is_single()) &amp;&amp; (empty($paged) || $nextpage &lt;= $max_page) ) {
		echo '&lt;a href="';
		next_posts($max_page);
		echo '"&gt;'. preg_replace('/&amp;([^#])(?![a-z]{1,8};)/', '&amp;#038;$1', $label) .'&lt;/a&gt;';
	}
}
を、
function next_posts_link($label='Next Page &amp;raquo;', $max_page=0) {
	global $paged, $wp_query;
	if ( !$max_page ) {
		$max_page = $wp_query-&gt;max_num_pages;
	}
	if ( !$paged )
		$paged = 1;
	$nextpage = intval($paged) + 1;
	if ( (! is_single()) &amp;&amp; (empty($paged) || $nextpage &lt;= $max_page) ) {
		echo '&lt;a href="';
		next_posts($max_page);
		echo '" <span style="color:red;">accesskey="6"</span>&gt;'. preg_replace('/&amp;([^#])(?![a-z]{1,8};)/', '&amp;#038;$1', $label) .'&lt;/a&gt;';
	}
}
このように修正していた。
</pre>
				<p>これで問題なく携帯対応として（directkeyを指定しないの？とかそういうつっこみは抜きにして）問題なかったのですが、今回の 2.7 へのバージョンアップで、link-template.php に大幅な加筆変更が加えられたため、同じ対処をやめることにしました。</p>
				<p>実は 2.7 へのバージョンアップにおいて、function get_next_posts_link / get_previous_posts_link が新しくなり、リンク生成時のアトリビュートを取得するためのアプリケーションフック（フィルター） next_posts_link_attributes / previous_posts_link_attributes が追加されました。<br />
				これにより、前述のようにコアファイルに手を加えなくてもフックでアトリビュートを追加できるようになったのです。</p>
				<p>というわけで早速（遅い？ｗ）プラグイン化してみました。</p>
				<pre title="set AccessKey on Next6/Prev4 plugin:set-accesskey-on-n6-p4.php">
&lt;?php
/*
Plugin Name: set AccessKey on Next6/Prev4
Description: 前後の投稿へのリンクにアクセスキーをセットする
Version: 1.0
Author: Y.Nishimura
Author URI: http://officel.biz/
*/

function filter_setAccesskeyN6($content) {
    return $content . " accesskey='6'";
}
function filter_setAccesskeyP4($content) {
    return $content . " accesskey='4'";
}
add_filter('next_posts_link_attributes', 'filter_setAccesskeyN6');
add_filter('previous_posts_link_attributes', 'filter_setAccesskeyP4');

?&gt;
</pre>
				<p><a href="http://dl.getdropbox.com/u/350637/WordPress%20Plugin/set-accesskey-on-n6-p4.php">set-accesskey-on-n6-p4.php</a>をダウンロードして、plugin ディレクトリにアップロード後、有効化するだけで前後のPOSTリンクに accesskey が追加されます。見てのとおり、国内の携帯電話向けに、次へのリンクは&#8221;6&#8243;を、前へのリンクは&#8221;4&#8243;になっています。</p>
				<p>個人的に必要だから作ったので、変更や修正には対応できないかもしれないかわりに、自由に配布・改変・私有化していただいて結構です。（個別にメンテする時間が取れないだけとも言います。）当サイトをご紹介いただいても、いただかなくても問題ありません。好きに使ってください。この投稿が誰かの何かの役に立てば幸いです。</p>
				<p>追伸：新設されたフックを見ている限り、いたるところに追加が行われているので、これをベースにしていろいろ出来そうです。例えば投稿タイトルを title 要素として埋めるとか。いや、面倒か。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://officel.biz/wordpress/wordpress-plugin-hacks-vol01.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://officel.biz/wordpress/wordpress-plugin-hacks-vol01.htm" />
	</item>
	</channel>
</rss>
