FC2ブログからWordPressにブログの引越し

2010年1月11日

割とあっさりといきましたが、ノーマークだったところに落とし穴がありました。

http://hatsukami.wordpress.com/2008/06/19/fc2towp/

こちらのサイトを参考にしました。

手順は

【まずはfc2ブログのデータをバックアップ】

1、記事(テキストデータ)をバックアップ、fc2ブログ管理画面→ツール→データのバックアップ→エクスポート→全ての記事→ダウンロード

2、画像をバックアップ、fc2ブログ管理画面→ツール→データのバックアップ→ファイルのバックアップ→ページを開く→FireFoxのアドオンBachDownloadで1ページづつダウンロード、これがチョッと時間がかかりました。

【落としたバックアップデータをWP用に加工します】

1、○○○○○○.txtは文字コードをutf-8に変換しときます。

2、カテゴリは、FC2時代のものを生かせたいならあらかじめWP側にも同じカテゴリーを作っておく。生かしたくない場合は、一括置換で「未分類」などに変えておく。

3、「AUTHOR:」もFC2時代のものを生かせたいならあらかじめWP側にも同じユーザーを作って置くといい。生かしたくない場合は、一括置換「admin」に変更してもいい。

4、画像のURLを変更。これ重要です。<img>と<a>の部分、「http://なんとかなんとか/file/ファイル名.jpg」とかなってますのでね。「http://なんとかなんとか/file/」の部分を「http://wpルート/wp-content/uploads/」に変換します。今回は、分離したかったので、uploads/fc2/というフォルダーを作ってそこにまとめました。

5、あと、ウッカリしたのがFC2のコメントで「管理人だけ参照」となっているもの。「SECRET: 1」となっているもの。これはこのままインポートすると全て表示されてしまうので、「APPROVED: 1」かえてやると「承認しない」になって表示されないので全て置換してやるといいみたい。

【さ、いよいよWPにインポートです】

1、画像のアップロード、今回はuploads/fc2/というフォルダーを作ったのでFFFTPでアップしましたが、普通にuploads/にアップしたい場合は、管理画面の「その他の設定」で「アップロードしたファイルを月別に整理」のチェックを外しておいてから「メディア」からまとめてアップロードしても大丈夫

2、テキストデータのインポート、管理→インポート→「Movable Type もしくは Typepad」さっき落として加工した「○○○○○○.txt」をアップロード。ここでphpinfoでアップできるファイル容量が2Mにデフォルトではなっているレンタルサーバーが多いので、それより大きい場合は変更しておくこと。

3、「投稿者の割り当て」を選択する画面が出てくるので任意で選択→実行。

4、「すべて完了しました。ではお楽しみください !」って出るまでひたすら待つ。

これで全て終了です。

  1. 「○○○○○○.txt」は文字コードがeucなのでutf-8に変換しときます。あ、WP自体eucならそのままでもいいのかな。ハツカミのはutf-8なんでここではしっかり変換しときます。
  2. カテゴリは全部「未分類」に変更→PRIMARY CATEGORY: 未分類CATEGORY: 未分類
  3. ステータスは「未公開」に変更→STATUS: draft
  4. 「AUTHOR:」は「admin」に変更してもいいし、取り込んだときに一気に変換できるのでどっちでもいいか。
  5. 画像のURLを変更。これ重要でしょ。<img>と<a>の部分、「http://なんとかなんとか/file/ファイル名.jpg」とかなってますのでね。「http://なんとかなんとか/file/」の部分を「http://wpルート/wp-content/uploads/」に変換します。/(スラッシュ)とか間違えては苦労が水の泡ですっっ(-”-;)

アーカイブページで、何年何月何日と表示させる方法と条件分岐(query_posts)を他に影響を与えない方法

2010年1月11日

archive.phpで、普通に

<?php single_month_title(); ?>

とすると、12月2009などとなります。

これを、何年何月、なおかつ、日付ぺーじでは何年何月何日と表示させるのに結構戸惑いました。

まず、何年何月何日と表示させるのは、

<?php
if(is_month()){
echo get_query_var(‘year’).’年’.get_query_var(‘monthnum’).’月’;
}else if(is_day()){
echo get_query_var(‘year’).’年’.get_query_var(‘monthnum’).’月’.get_query_var(‘day’).’日’;
}
?>

あるいは、

<?php
if(is_date()){
$title = get_the_time(‘Y’).’年’;
if(is_day() || is_month()) $title .= get_the_time(‘m’).’月’;
if(is_day()) $title .= get_the_time(‘d’).’日’;
echo $title;
}else{
wp_title();
}
?>

で大丈夫。

しかし、問題はこれより上に条件分岐タグがあった場合は、日付が全て同じ、あるいは、0年0月0日となってしまいます。

そこで、まず、

<?php query_posts(‘cat=6 & order=desc & showposts=1′); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

は使わずに

<?php //$newquery = new WP_Query(‘cat=6 &order=desc & showposts=1′);
//if ($newquery->have_posts()): ?>
<?php //while ($newquery->have_posts()) : $newquery->the_post(); ?>

をつかってみたけれども、結果は同じ、

結果、

<?php query_posts(‘cat=6 & order=desc & showposts=1′); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

のあと、ループ終了後に

<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>

とするとOKでした。

お疲れ様でした。

Moreタグ

2010年1月10日

Moreタグって、一長一短ありますね。
2、3行で区切れば、より多くの記事のタイトルが表示され、
この投稿の続きを読む »

Breadcrumb Navigation XT [パンクズリストの表示]

2010年1月10日

間単に、パンくずリストを表示できるプラグインを見つけました。

Breadcrumb Navigation XT

CSSで、リストに適応するタグ(#bread)を書いて

<?php
if(function_exists(‘bcn_display’))
{
// Display the breadcrumb
echo ‘<div id=”bread”>’;
bcn_display();
echo ‘</div>’;
}
?>

上記を記述するだけです。

後は、ダッシュボードで表記に関する設定で終わりです。

一瞬と惑ったのは、それより前に条件分岐

<?php query_posts(‘cat=5 ‘); ?>

などがあると正常に表示されない。

しかし、条件分岐の書き方は色々なところでひっかかるが良い書き方はないものだろうか?

上記の他は、

<?php $newquery = new WP_Query(‘cat=5′);
if ($newquery->have_posts()): ?>
<?php while ($newquery->have_posts()) : $newquery->the_post(); ?>

などもあるが、これでも駄目でした。

諦めて一番上におきましたが。

出力条件と分割ページへのリンクがうまく作動しない

2010年1月3日

query_posts(’cat=3’)
でループの出力条件を指定して
posts_nav_link();
でページ送り(分割ページへのリンク)を表示させようとするとうまく作動しませんでした。

前のページへのリンクをクリックしても、同じ記事が表示されます。
URLの表示は、/?paged=2、/?paged=3となっておりますが、内容は同じです。

$posts=get_posts(‘category=3′)
を使っても同じような状態でした。

それで、条件式を

<?php query_posts(‘posts_per_page=5&cat=-5,-6,-7&paged=’.$paged); ?>

とすると、なぜか行きました。

よくわからないが、まあ出来たので良かった。