<?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>toyosystem &#187; wordpress</title>
	<atom:link href="http://www.jamboree.jp/cms/archives/category/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jamboree.jp/cms</link>
	<description>名古屋在住のWebプログラマー</description>
	<lastBuildDate>Fri, 26 Aug 2011 12:41:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>メールでの投稿の文字化け修正 WPME2.2.1</title>
		<link>http://www.jamboree.jp/cms/archives/38</link>
		<comments>http://www.jamboree.jp/cms/archives/38#comments</comments>
		<pubDate>Mon, 03 Sep 2007 04:23:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/38</guid>
		<description><![CDATA[本ブログではWordPressME2.2.1を使っています。 ふとしたことからメールでの投稿を使ってみたくなったのですが、どうもうまくいかない･･･ デフォルトの仕様確認 メールを/wp-mail.phpがPOPで取得する メールのサブジェクトがエントリーのタイトル、本文が本文に対応する タイトルが文字化けする ソースをみてみると、そもそもマルチバイト関係のことは考えてくれていないみたいなので文字化けして当然です。 タイトルと本文をPHPの内部エンコーディング（wp-config.phpで設定）に変換してやることにしました。 /wp-mail.php 132行目あたり $content = trim($content); $content = mb_convert_encoding(trim($content) , mb_internal_encoding(), "JIS"); /wp-mail.php 138行目あたり if ($post_title == '') $post_title = $subject; if ($post_title == ''){ $post_title = $subject; $post_title = str_replace(array('=?ISO-2022-JP?B?','=?iso-2022-jp?B?','?='), '', $post_title); $post_title = explode(" ", $post_title); $decoded_title = ''; foreach($post_title as $k=>$v){ $decoded_title .= mb_convert_encoding(base64_decode($v) , [...]]]></description>
			<content:encoded><![CDATA[<p>本ブログではWordPressME2.2.1を使っています。<br />
ふとしたことからメールでの投稿を使ってみたくなったのですが、どうもうまくいかない･･･</p>
<h2>デフォルトの仕様確認</h2>
<ul>
<li>メールを/wp-mail.phpがPOPで取得する</li>
<li>メールのサブジェクトがエントリーのタイトル、本文が本文に対応する</li>
</ul>
<h2>タイトルが文字化けする</h2>
<p>ソースをみてみると、そもそもマルチバイト関係のことは考えてくれていないみたいなので文字化けして当然です。<br />
タイトルと本文をPHPの内部エンコーディング（wp-config.phpで設定）に変換してやることにしました。<br />
/wp-mail.php 132行目あたり<br />
<code><br />
<del>$content = trim($content);</del><br />
$content = mb_convert_encoding(trim($content) , mb_internal_encoding(), "JIS");<br />
</code></p>
<p>/wp-mail.php 138行目あたり<br />
<code><br />
<del>if ($post_title == '') $post_title = $subject;</del><br />
if ($post_title == ''){<br />
		 $post_title = $subject;<br />
		 $post_title = str_replace(array('=?ISO-2022-JP?B?','=?iso-2022-jp?B?','?='), '', $post_title);<br />
		 $post_title = explode(" ", $post_title);<br />
		 $decoded_title = '';<br />
		 foreach($post_title as $k=>$v){<br />
		 	$decoded_title .= mb_convert_encoding(base64_decode($v) , mb_internal_encoding(), "JIS");<br />
		 }<br />
</code><br />
タイトルはやりかたを知らないので力技でデコード。要するにbase64デコードをして、JISから内部エンコードに変えているだけです。<br />
よくわかんない人は、下記ダウンロードしてファイルごと上書きしてください。（バージョンを確認してね！）</p>
<h3>付録</h3>
<p><a href='http://www.jamboree.jp/cms/wp-content/uploads/2007/09/wp-mail.zip' title='wp-mail.zip'>wp-mail.zip</a></p>
<h2>本文が投稿されない。</h2>
<p>上の作業でタイトルは文字化けしなくなりましたが、本文がありません。<br />
<a href="http://codex.wordpress.org/Blog_by_Email">本家</a>をあたってみると、バグ報告がされていました。</p>
<p><a href="http://trac.wordpress.org/ticket/4337">#4337 (Blog by Email: No content is assumed) &#8211; WordPress Trac &#8211; Trac</a></p>
<p>すでに誰か偉い人がパッチを作ってくれていたのでclass-pop3.php.patchというのをあてたら修正されました。</p>
<h3>付録</h3>
<p><a href='http://www.jamboree.jp/cms/wp-content/uploads/2007/09/class-pop3.zip' title='class-pop3.zip'>class-pop3.zip</a></p>
<h2>自動で更新してくれない</h2>
<p>あたりまえかもしれませんが、せっかくメールを送っても、wp-mail.phpにアクセスするまでメールをチェックしてブログを更新してくれません。<br />
普通はcronという仕組みを使ってwgetしたりするのですが、今回は指定したURLに定期的にアクセスしてくれる<a href="http://www.webcron.org/">Webcron<br />
</a>というサービスを使いました。ここでユーザ登録して/wp-mail.phpに1時間ごとにアクセスしてもらうように設定しました。<br />
これでメールを送れば遅くても1時間後には更新されるようになったというわけです。</p>
<p>以上</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/38/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wordpressのブログタイトルと記事名の間のセパレータを変更</title>
		<link>http://www.jamboree.jp/cms/archives/30</link>
		<comments>http://www.jamboree.jp/cms/archives/30#comments</comments>
		<pubDate>Wed, 29 Aug 2007 14:41:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.jamboree.jp/cms/archives/30</guid>
		<description><![CDATA[wordpress ME2.2.1を使ってます。 記事のタイトルのブログ名と記事名のセパレータが引用符になっていて、せっかく誰かがブクマしてくれたりしても？になってしまっていて悲しくなってしまうのを修正。 ↑こういう状態 /wp-content/themes/テーマ名/header.php もしくは管理画面から 表示＞テーマエディタ＞ヘッダー にて6行目ぐらいでタイトルタグを出力しているので < ?php if (function_exists('seo_title_tag')) { seo_title_tag(); } else { bloginfo('name'); wp_title();} ?> ってところのwp_title()に値を入れてあげて < ?php if (function_exists('seo_title_tag')) { seo_title_tag(); } else { bloginfo('name'); wp_title(' &#124; ');} ?> とかにしてあげればOK。 テーマが一杯あって面倒だって場合は、wordpressの方を直接書き換えてやる手もあります。 その場合は、/wp-includes/general-template.phpのfunction wp_titleの$wepを書き換えでOK。]]></description>
			<content:encoded><![CDATA[<p>wordpress ME2.2.1を使ってます。<br />
記事のタイトルのブログ名と記事名のセパレータが引用符になっていて、せっかく誰かがブクマしてくれたりしても？になってしまっていて悲しくなってしまうのを修正。<br />
<img src='http://www.jamboree.jp/cms/wp-content/uploads/2007/08/hatebu.gif' alt='hatebu.gif' /><br />
↑こういう状態</p>
<pre>
/wp-content/themes/テーマ名/header.php
</pre>
<p>もしくは管理画面から</p>
<pre>
表示＞テーマエディタ＞ヘッダー
</pre>
<p>にて6行目ぐらいでタイトルタグを出力しているので<br />
<code><br />
< ?php if (function_exists('seo_title_tag')) { seo_title_tag(); } else { bloginfo('name'); wp_title();} ?><br />
</code><br />
ってところのwp_title()に値を入れてあげて<br />
<code><br />
< ?php if (function_exists('seo_title_tag')) { seo_title_tag(); } else { bloginfo('name'); wp_title(' | ');} ?><br />
</code><br />
とかにしてあげればOK。<br />
テーマが一杯あって面倒だって場合は、wordpressの方を直接書き換えてやる手もあります。<br />
その場合は、/wp-includes/general-template.phpのfunction wp_titleの$wepを書き換えでOK。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jamboree.jp/cms/archives/30/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

