Pica pica

We Love WordPress, We Love Firefox, We Love Opera, We Love…

5 月
26

Vox Crossposter plugin書き込みテスト2回目

Posted by せれ on 5 月 26, 2007

前回のVox Crosspostテストに見事に玉砕し、改善策もわからないまま放置気味だった「Vox Crossposter Plugin試用」 のエントリですが、このエントリにとんぷうさんからコメントをいただき、その情報を元にvox_crosspost.phpファイルをいろいろ弄ってたら無事にCrosspostできるようになりました。

今回の手順を検証するに当たっての前提条件

  • このサイトの文字コードはUTF-8、Vox.comに作ったサイトもUTF-8でした。
    (ソースを見てヘッダから確認)
    ご利用のサイトの文字コードがUTF-8以外の場合、各々適切な文字コードを指定する必要があると思います。
  • あと、今回のエントリで利用しているのは「WordPress plugin: Vox Crossposter」で公開されている、Version0.3のpluginファイルに対しての変更です。
    将来、Version Upした場合、上記書き換えを変更する箇所の行番号や記述内容が変わる可能性がありますのであらかじめご注意ください。

以下、このサイトの場合の改善方法をメモ

  1. Vox Crossposter pluginフォルダ内の vox_crosspost.phpファイルを開きます。
    念のため元ファイルはコピーして別名保存しておいたほうがいいかも。
  2. 42-45行目をそれぞれ以下の通りに書き換え。内容は文字コードの変換です。
    【変更前】
    42行目  $email_address = get_vox_email();
    43行目  $email_headers = create_email_headers();
    44行目  $email_subject = get_subject($post_id);
    45行目  $email_body = get_body($post_id);
    
    【変更後】
    42行目  $email_address = mb_convert_encoding(get_vox_email(), “UTF-8″);
    43行目  $email_headers = mb_convert_encoding(create_email_headers(), “UTF-8″);
    44行目  $email_subject = mb_convert_encoding(get_subject($post_id), “UTF-8″);
    45行目  $email_body = mb_convert_encoding(get_body($post_id), “UTF-8″);
  3. 71行目を以下の通りに書き換え。内容は文字コードの変更だと思います。(無知)
    【変更前】
    71行目  $email_headers .= ‘Content-type: text/html; charset=iso-8859-1′.”rn”;
    
    【変更後】
    71行目  $email_headers .= ‘Content-type: text/html; charset=UTF-8‘.”rn”;
  4. 変更したファイルをvox_crosspost.php名で保存。
  5. WordPressの管理画面>プラグインから「Vox Crossposter」を無効にした後、FTPで変更後のファイルをUploadします。
  6. 最後に、WordPress管理画面>プラグインから「Vox Crossposter」を有効にした後、moblog用メールアドレスの確認などを行って完了。(初期設定はこちらをご参照ください)

これでうまく行ったのですが、WordPress側もVox.com側も同じ文字コードの場合、手順2.は不要で手順3.のみでも良いのかも・・・(未検証のため自信なし)

とんぷうさん、有用な情報をありがとうございました。
あと、文字コードの変換についてはこちらを参考にさせていただきました。
PHPなんでチンプンカンプンな素人なものでこういう情報がないとまったくわかりませんでした。

余談ですが、Version0.3のプラグインだとCrosspost or Do not crosspostの設定が標準で「Crosspost」側になっています。

Vox Crossposter Plugin

このことをつい忘れてしまって、ちょっとした誤字脱字のための修正を行っていると保存ボタンを押した回数だけ、Vox.com側にエントリが作成されますので作成後の編集は注意が必要です。
標準で「Do not crosspost」にするオプションぐらいつけてほしいなぁ。(他力本願)

  1. とんぷう Said,

    せれさん、クロスポスト成功おめでとうございます。
    情報、役にたったようでよかったです。

    これからもWPのプラグイン情報楽しみにしてます。

  2. とんぷう Said,

    追加情報です。
    >標準で「Do not crosspost」にするオプションぐらいつけてほしいなぁ。(他力本願)

    この件についての修正は176行~180行のラジオボタンのデフォルト値を変更してあげることで、可能ですよ。
    ちなみに原本の176行は
    ID, ‘no_vox’, true), 0); ?>/>
    となってますよね、ここの value=”1″ を ”0” に、そして後に続くchecked(get_post_meta($post->ID, ‘no_vox’, true), 0);  の true),0); を1 にして、同様に180行目も1、0を反対に変更したら、デフォルトで Do not crosspostに出来ますよ。

    以上追加情報でした。わかりにくい説明で申し訳ありません
    せれさんのように、簡単明瞭に説明出来ればよろしいのですが(^^;

  3. せれ Said,

    とんぷうさん、追加情報ありがとうございます。

    この件についての修正は176行~180行のラジオボタンのデフォルト値を変更してあげることで、可能ですよ。
    ちなみに原本の176行は
    ID, ‘no_vox’, true), 0); ?>/>
    となってますよね、ここの value=”1″ を ”0” に、そして後に続くchecked(get_post_meta($post->ID, ‘no_vox’, true), 0);  の true),0); を1 にして、同様に180行目も1、0を反対に変更したら、デフォルトで Do not crosspostに出来ますよ。

    手持ちのVersion0.3のファイルだと行数が数行異なっていましたが、該当箇所から判断して上記案内通りにやってみたら、デフォルトで「Do not crosspost」が選択されるようになりました。
    おかげさまで、Voxへの誤投稿が減らせます。
    有用な情報ありがとうございました!

  4. Vox Crossposter Pluginを試してみる Said,

    […] いです。上記の設定のみで使えています。 ただし、クロスポストをデフォルトにするかどうかの修正については必要ならしなければならないようです。Pica Picaさん投稿のコメント欄参照 […]

Add A Comment