<?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>Little.ws &#187; バグ</title>
	<atom:link href="http://little.ws/tag/%e3%83%90%e3%82%b0/feed" rel="self" type="application/rss+xml" />
	<link>http://little.ws</link>
	<description>web制作とかcssとかデザインとか色々～な覚え書き</description>
	<lastBuildDate>Sat, 04 Feb 2012 07:27:16 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>wordpress:インポート時のカテゴリ重複防止</title>
		<link>http://little.ws/200907/225.html</link>
		<comments>http://little.ws/200907/225.html#comments</comments>
		<pubDate>Wed, 29 Jul 2009 01:17:16 +0000</pubDate>
		<dc:creator>chibi</dc:creator>
				<category><![CDATA[Wordpress基礎編]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[インポート]]></category>
		<category><![CDATA[カテゴリ]]></category>
		<category><![CDATA[バグ]]></category>

		<guid isPermaLink="false">http://little.ws/?p=225</guid>
		<description><![CDATA[こんにちは。 wordpressでインポート作業をしたことがある人は分かると思いますが、1つのカテゴリが2つ作成されることがあります。 一つは記事が入っているカテゴリ、一つは記事が入ってないカテゴリという感じです。 さら&#8230;]]></description>
			<content:encoded><![CDATA[<p>こんにちは。<br />
wordpressでインポート作業をしたことがある人は分かると思いますが、1つのカテゴリが2つ作成されることがあります。<br />
一つは記事が入っているカテゴリ、一つは記事が入ってないカテゴリという感じです。<br/><br />
さらに、インポートするwordpressにエクスポートしたwordpressと同じカテゴリがあっても、そのなかにはインポートしてくれません。<br />
カテゴリ数が少なければ手作業で一つずつ削除していけば済むことですが、カテゴリ数が増えればそれは気の遠くなるような作業。<br/><br />
ということで、調べたらフォーラムで解決策がありましたので、以下自分用まとめです<br/><br />
（<a href="http://ja.forums.wordpress.org/topic/210" class="liwp">以下ほぼコピペですので元記事のフォーラムへこちらからどうぞ</a>）<br />
<span id="more-225"></span></p>
<h4>対策１</h4>
<p>このバグに関しては、日本語のカテゴリ名に対してスラッグを変更している場合に起きるようなので、スラッグを変更しない、もしくはエクスポート前にスラッグを変更前の%nn形式に戻してあげる。<br/></p>
<h4>対策2</h4>
<p>上記のバグ修正のため、<br />
/wp-admin/import/wordpress.php<br />
このファイルをごにょごにょします。<br/><br />
fromからtoへ変更（<a href="http://ja.forums.wordpress.org/topic/210#post-8444" target=_brank class="liwp">フォーラムmizube様ポストより</a>以下）</p>
<pre class="brush: php; title: ; notranslate">
/*
 * line 403-404:
 */
		// from:
		preg_match_all('|&lt;category&gt;(.*?)&lt;/category&gt;|is', $post, $categories);
		$categories = $categories[1];

		// to:
		preg_match_all('|&lt;category domain=&quot;category&quot; nicename=&quot;([0-9a-z%\-_]*?)&quot;&gt;(.*?)&lt;/category&gt;|is', $post, $categories);
		$nicenames  = $categories[1];
		$categories = $categories[2];

/*
 * Line 462-482
 */
			// from:
			if (count($categories) &gt; 0) {
				$post_cats = array();
				foreach ($categories as $category) {
					if ( '' == $category )
						continue;
					$slug = sanitize_term_field('slug', $category, 0, 'category', 'db');
					$cat = get_term_by('slug', $slug, 'category');
					$cat_ID = 0;
					if ( ! empty($cat) )
						$cat_ID = $cat-&gt;term_id;
					if ($cat_ID == 0) {
						$category = $wpdb-&gt;escape($category);
						$cat_ID = wp_insert_category(array('cat_name' =&gt; $category));
						if ( is_wp_error($cat_ID) )
							continue;
					}
					$post_cats[] = $cat_ID;
				}
				wp_set_post_categories($post_id, $post_cats);
			}

			// to:
			if ($c = count($categories) &gt; 0) {
				$post_cats = array();
				for ($i = 0; $i &lt; $c; $i++ ) {
					if ( '' == $categories[$i] || '' == $nicenames[$i] )
						continue;
					$cat = get_term_by('slug', $nicenames[$i], 'category');
					if ( empty($cat) || $cat-&gt;name != $categories[$i] ) {
						$slug = sanitize_term_field('slug', $categories[$i], 0, 'category', 'db');
						$cat = get_term_by('slug', $slug, 'category');
					}
					$cat_ID = 0;
					if ( ! empty($cat) )
						$cat_ID = $cat-&gt;term_id;
					if ($cat_ID == 0) {
						$category = $wpdb-&gt;escape($categories[$i]);
						$cat_ID = wp_insert_category(array('cat_name' =&gt; $category));
						if ( is_wp_error($cat_ID) )
							continue;
					}
					$post_cats[] = $cat_ID;
				}
				wp_set_post_categories($post_id, $post_cats);
			}
</pre>
<p>以上、wordpress2.8.2でも確認済みです。<br/><br />
詳しくは<a href="http://ja.forums.wordpress.org/topic/210" class="liwp">フォーラム</a>をご覧下さい。</p>
]]></content:encoded>
			<wfw:commentRss>http://little.ws/200907/225.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

