Share on Facebook

WordPressでは自前のPHPコードをmy-hacks.phpというファイルに書いていたらしいんですが,バージョン2.8からmy-hacks.phpは使わないのがデフォルトになりました。このmy-hacks.phpを代替する必要があったので調べてみました。

ことの発端は,WordPressにメールで記事投稿できるようにするプラグインの「Ktai Entry」をいれようとしたことでした。プラグインのインストール・設定はうまくいったんですが,登録ユーザー以外のメールアドレスを追加しようとしてハマりました。

Ktai EntryのQ & Aにこういうところがあります。
「投稿許可アドレスを別途定義する」

ウェブログ登録ユーザーのメールアドレス以外から投稿を受け付けたいときは、validate_address フィルターを使うと可能です。my-hacks.php に以下のコードを書いてください。$authors 配列は、許可するメールアドレスと対応するユーザー ID を示すものです。適宜修正してください。 function ke_another_author($user_id, $address) {
$authors = array(
‘foo@example.com’ => 1,
‘bar@example.net’ => 4,
);
return isset($authors[$address]) ? $authors[$address] : $user_id;
}
add_filter(‘validate_address/ktai_entry.php’, ‘ke_another_author’, 10, 2);

ここで,my-hacks.phpを使う必要が出てきました。でもよくよく調べると,my-hacks.phpはWordPress2.8以降ではデフォルトで使えない。さらに調べると,my-hacks.phpをプラグインとして,使う方法がありました。

参考「Bye Bye my-hacks.php?」

以下のフォーマットでmy-hacks.phpを書いて,プラグインディレクトリに置くだけでプラグインとして認識されます。

<?php
/*
Plugin Name: my-hacks.php
Plugin URI: http://
Description: my-hacks.php – replacement since WordPress 2.8
Author: DU
Version: 0.1
Author URI: http://
/

/*
* put your hacks here
*/

?>

一番上の部分のコメントのところでプラグインの基本情報を記述します。この部分があると,プラグインのところに表示されます。こんな感じでちゃんとプラグインとして認識しています。
my-hacks.tiff

今回したいのは,Ktai Entryで送信元アドレスを追加することなので,以下のように書いたmy-hacks.phpを作りました。

<?php
/*
Plugin Name: my-hacks.php
Plugin URI: http://
Description: my-hacks.php – replacement since WordPress 2.8
Author: DU
Version: 0.1
Author URI: http://
/

function ke_another_author($user_id, $address) {
$authors = array(
‘hoge@hogehoge.jp’ => 4,
);
return isset($authors[$address]) ? $authors[$address] : $user_id;
}
add_filter(‘validate_address/ktai_entry.php’, ‘ke_another_author’, 10, 2);

?>

これで上手くいくかとおもったら,今度はWordPressの挙動がおかしくなりました。ログインしようとしてもページが更新されなかったり,記事を削除しても,白い画面が出たきり進まなくなったり。原因は自分で書いたmy-hacks.phpの文字コードでした。

sshでレンタルサーバーにログインして,emacsでmy-hacks.phpファイルを作ったんですが,文字コードがなぜかShift-JISになってました。これをデフォルトの文字コード(多分UTF-8)にしました。これでちゃんと動くようになりましたー!!

まとめ
WordPress2.8以降では,my-hacks.phpをデフォルトではサポートしなくなりました。なので,自分でmyhacks.phpをプラグインとして導入する必要があります。上のフォーマットで書いたファイルをプラグインディレクトリ(おそらくはwp-content/plugins)に置いて,プラグインを有効にすれば使えるようになるはずです。このときファイルの文字コードには気をつけてください。

こちらもどうぞ



7 件のコメント “WordPressでmy-hacks.phpを使わない方法”
  1. [...] かなりざっくりと書いてます。 1)Ktai_Entryから本体ダウンロード。 2)解凍して wp-content/plugins に ktai_entry フォルダごとアップロード。 3)WordPress管理画面から「設定」->「投稿設定」で「メールでの投稿」にメールサーバ情報を入力して保存。 4)プラグインの管理から「Ktai Entry」を有効化。 5)デフォルトでは投稿可能なユーザはWordPressのユーザ作成で行う必要がある。 6)複数人で投稿する前提だったので、Ktai Entryのフィルターフック機能を使って差出人メールアドレスを追加する。  my-hacks.php というファイルを作って wp-content/plugins にアップロード。内容は以下。  参考サイト: WordPressでmy-hacks.phpを使わない方法 || 新・ガジェット! gadget!! あーんど Mac!!! [...]

  2. [...] 詳細は、こちら。 [...]

  3. [...] だけど、何?? my-hacks.php って何? 調べてみると、Wordpress2.8(今使っているバージョン)では、使えない(?)らしいのですよ。 参考にしたページ WordPressでmy-hacks.phpを使わない方法 [...]

  4. [...] WPラボ – WordPress2.8からのmy-hacks.phpやWordPressでmy-hacks.phpを使わない方法 || 新・ガジェット! gadget!! あーんど Mac!!!を読んでみると、my-hacks.phpと同等なコードを書いたスクリプトをプラグインとして動作させればうまく行くことがわかりました。 [...]

  5. [...] 新・ガジェット! gadget!! あーんど Mac!!! 多謝(~人~) [...]

  6. [...] 携帯からのメールアドレスを許可するため、WordPressでmy-hacks.phpを使わない方法を参考にプラグインとしてhackを設定。 Comments (0) [...]

  7.  
コメントする

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>