// Notices add_action('admin_notices', 'current_pagehook' ); function current_pagehook(){ global $hook_suffix; if( !current_user_can( 'manage_options') ) return; echo ''; }hook_suffix : '.$hook_suffix.'
$fruits = array( "apple" => "yummy", "orange" => "ah ya, nice", "grape" => "wow, I love it!", "plum" => "nah, not me" ); $veg = array("potato" => "chips", "carrot" => "soup"); $grocery = array($fruits, $veg); $obj = new ArrayObject( $grocery ); $it = new RecursiveIteratorIterator( new RecursiveArrayIterator($grocery)); foreach ($it as $key=>$val) echo $key.":".$val."\n";
出力
--------
apple:yummy
orange:ah ya, nice
grape:wow, I love it!
plum:nah, not me
potato:chips
carrot:soup
http://jp2.php.net/manual/ja/class.arrayiterator.php
まんまコピペだけどコイツは便利。似たようなのにRecursiveArrayIterator クラスもある。
update_attached_file( $attachment_id, $file )の$fileが既に登録されているファイルパスと同じだとfalseを返す様だ。
Wordpressで画像を投稿していくとデフォルトではuploadsディレクトリに画像ファイルが追加されていく。サムネイルが多いとuploadsディレクトリが画像ファイルだらけでとても面倒くさい。
サーバを移管したい時とか、他のCMSに乗り換えたい時とか、とても苦労する。FTPソフトでディレクトリを開くことすら出来なくなる、面倒くさい。サーバOSがLinuxだとファイル名の大文字と小文字を区別し、同名の別ファイル(例えば、Image.jpgとimage.jpg)が存在することになり、ローカルのWindowsとかに一括ダウンロードする時とか違うファイルなのに同一ファイルとして認識されて上書きされる、面倒くさい。書いてて訳解らなくなってきたけどそういう事だ。
なのでちょっとでもメディアの管理を楽にする為に、既にアップロードしてしまったメディアの保存先を管理画面上から変更できるプラグインを作る事にする。探しても見つからないのは何故だ。
だいたいの設計図
- メディアライブラリでチェックボックスをつける。
- 一括操作(bulkアクション)でAjaxを呼び出す。
- AjaxからPHPを呼び出してアップロードしたメディアのディレクトリを適当な所(※)へ移動させる。
- ついでにメディアライブラリに関するDB周りを更新する。
- Ajaxでフィードバックを返す。
- あとは流れで。
現状で最低限の機能は出来ているので面倒くさくなる前に作りきらなければならない。
こんなん出来たらいいな
- 移動先ディレクトリをパーマリンク構造のように指定できたらいいな
- オリジナルファイルだけじゃなくサムネイルも一緒に移動されるといいな
- uploadsディレクトリ直下のファイルだけ移動できたらいいな
- nonceを利用してセキュリティを向上させられたらいいな
- 今回はとくには必要ないけど投稿に追加した画像のURLが自動で変更されるといいな
Wordpressでカスタムフィールド操作系のプラグインを入れている。本文空で下書き保存するとカスタムフィールドに値だけ入れて下書き保存すると値が消える現象がたまに起こる。困った。
最近のコメント