WordPressのメディアアップローダー

WordPress3.5.1のメディアアップローダーでハマりかけてます。

ブラウザによりそうですが、80KB程度の画像300枚くらいまとめて上げようとすると挙動不審に。

使い方として、推奨されてないだろうことは重々承知の上で、なんとかまとめてアップロードしたいのだけど、40枚くらいが限界の模様。

さらに、アップロードが非同期だからデータベースに書き込まれる順序がバラバラになってしまう。

昔のバージョンのアップローダは、順序よく上がってくれたし、タイムアウトしても続きから送れば良かったので、大量に写真を送りつけても安心でした。

そのため、画像と1:1で結びつける投稿があっても、Excel+VBAで作ったデータとジェネレータを使ってWordPress形式インポート、というのが可能だったのです。

試してみたところ、少しずつ上げるとアップロード処理自体は行われるけれども、今度は順序の乱れが取り返しつかないレベルなりました。

枚数が少なければ、並び替えもしやすいインターフェイスなのですが…。

プラグイン使うとなると大抵表示側だと思うんですが、ギャラリー(表示)はデフォルトでもかまわないのに、今回はアップロードで難儀してます。

ファイルはFTPでアップロードして、ポチッとな→ファイル名降順でメディアギャラリーに差し込むWordPressプラグインとかないかな!

…プラグインではありませんが、昔だいたい同じようなもの作ったはずなので、発掘するのと新しく作るのだったらどちらが早いかで悩ましい夜明け。

今回はDropboxのWeb表示URL貼ってごまかすという手もあるので、どうしようか。

WordPressショートコードで投稿データ表示。

テンプレート面倒くさくていじりたくない…。
新しいテンプレート作るときコピペするの面倒だもの…。

そこで、今更感抜群のこちら!

ショートコード内でテンプレートと同じ記事のループ処理をしてるので、
投稿内容がthe_content()とかdo_shortcode(get_the_content())を通ると記事が表示できます。

使い方としては、Magic Fields2プラグインでpost_typeとcustom_taxonomyいっぱい作って、
管理画面の編集できる範囲を固定化した後に、ページの本文でこのショートコードを呼び出して
一部の必要な記事を表示する。

ショートコード外の装飾はビジュアルエディタである程度いじれるのがメリット。

[show_posts post_type="posts" length="1"]

とかで管理画面から特定ポストタイプの最新の投稿1件を出せます。
あと、taxonomyも1個だけ対応している。
(ある固定ページにポストタイプ「event」の「交流会」タクソノミーの最新1件だけを表示したいときとかに)

[show_posts post_type="posts" taxonomy="post-tax"]

中ではWP_Queryでテンプレートに書くループやってるだけなので、後はスタイルシートで頑張る。

あと、ページ送りとか使わないような1件抽出とか向きです。そのへんまったく考慮してません。

あっ、中でloopテンプレート呼んだりしたほうがいいのかな?

<?php
function shortcode_show_posts($atts, $content = null){
 $result="";
//ショートコードで使えるオプションたち
 extract(shortcode_atts(array(
 'post_type'=>'',//ポストタイプ
 'post_id'=>'',//ポストID
 'length'=>1,//=posts_per_pages、記事数
 'taxonomy'=>'',//タクソノミー
 'order'=>'date',//ソート基準
 'orderby'=>'DESC',//ソート順
 'show_post_title'=>1,//タイトル表示するか?
 'show_post_date'=>1,//日付表示するか?
 'show_post_body'=>1,//本文表示するか?
 'use_link'=>0,//タイトルにパーマリンクするか?
 'title_class' => '',//タイトルに追加CSSクラス
 'body_class' => ''),//本文に追加CSSクラス
 $atts));

//WP_Queryに渡すオプションを整理
 if(!empty($taxonomy)){
//taxonomyがあるときは大体他の条件無視する。
 $opt=array(
 'tax_query'=>array(array('taxonomy'=>$post_type.'s', field=>'slug', terms=>array($taxonomy))),
 'posts_per_page'=>$length,
 'order'=>$order,
 'orderby'=>$orderby,
 'post_status' => 'publish'
 );
 }else{
 $opt=array(
 'post_type' => $post_type,
 'p'=>$post_id,
 'posts_per_page'=>$length,
 'order'=>$order,
 'orderby'=>$orderby,
 'post_status' => 'publish'
 );
 }

 $query = new WP_Query($opt);

 if($query->have_posts()):while($query->have_posts()):
 $result.='<div>';
 $query->the_post();

 if($show_post_title){
 $result.='<h3>';
 if($use_link){
 $result.='<a href="'.get_permalink().'">'.get_the_title().'</a>';
 }else{
 $result.=get_the_title();
 }
 $result.='</h3>';
 }

 if($show_post_date){
 $result.='<date>';
 $result.=get_the_date('Y年m月d日 H:i 掲載');
 $result.='</date>';
 }

 if($show_post_body){
 $result.='<div>';
 $content=do_shortcode(get_the_content());
 $result.=str_replace("\n","<br />",$content);
 }

 $result.='</div>';
 $result.='</div>';
 endwhile;endif;

 return $result;
}
add_shortcode("show_posts", "shortcode_show_posts");
?>

バグズ ライク。

もぞもぞ動くヤツが絵をつくるアニメ。ちょっと癖になってしまった。

虫とか黒い小さな点が嫌いな人は絶対に見ちゃダメですよ!

真ん中あたりをじっくり見ると、ちょっと違う世界への扉が開けそうです。

繰り返し見ると頭痛くなるのでご注意ください。

bugs photo

Black cat @Doug88888 http://www.flickr.com/photos/doug88888/5717852049/

[Windows]ffmpegとbatファイルで快適ドラッグ&ドロップ変換

2013/3/15にFFmpeg1.2がリリースされました。
ちょうどAni-ZONE Frontierのライブ準備で動画変換する必要があったので、ありがたく使わせてもらったところです。

で。

内部的にこのFFmpegを使った各種GUI変換ソフトはたくさんあるのだけど、ちょいちょいオプションが変わったり、搭載しているバージョンが古くて変換できないものがあるなど、結局は直接設定を書いたほうが幸せになれることが。

ただし、いちいちMS-DOSのコマンドラインからやるのは面倒なので、こんな風に

mp3変換とか
mp3変換とか

変換用のバッチファイルを作っておいて、エクスプローラ上でドラッグアンドドロップしてやれば楽チンですね。ということで

まずはFFmpegをダウンロード

http://ffmpeg.zeranoe.com/builds/

使ってるOSの32/64bitに注意してStaticを落とせばよかです。

変換用バッチファイルを作成

新規テキストファイルを作って、この内容を書いて、拡張子を,batで保存するだけです。
FFmpegを絶対パス指定しているので、どこにバッチファイルを保存しても大丈夫。
ついでに、出力はデスクトップに変換元ファイルと同じファイル名で出てきます。

肝心の変換設定は6行目。
サンプルは何か(音声・動画)からmp3形式に音声だけ取り出すものです。

※FFmpegの保存先にあわせて、「C:\Users\xxxx\Desktop\ffmpeg\bin\ffmpeg.exe」を読み替えてください。

@ECHO OFF

:FILEDROP
ECHO ファイル受け取り
cd C:\Users\xxxx\Desktop
:REPEAT
C:\Users\xxxx\Desktop\ffmpeg\bin\ffmpeg.exe -i %1 "%~n1.mp3"
if "%~2"=="" GOTO EXIT
shift
GOTO REPEAT
:EXIT
pause

※2013/3/30 追記 ファイルの複数ドラッグ&ドロップに対応しました。

変換設定を色々変えてみる

例1)640x480の画質そこそこmp4作成
C:\Users\xxxx\Desktop\ffmpeg\bin\ffmpeg.exe -i %1 -r 30 -b 10000k -s 640x480 -vcodec mpeg4 "%~n1.mp4"

例2)320x240の画質まあまあ携帯プレビュー用mp4作成(ファイル名の後ろに320x240つけて出力する)

C:\Users\xxxxx\Desktop\ffmpeg\bin\ffmpeg.exe -i %1 -r 30 -b 700k -s 320x240 -vcodec mpeg4 "%~n1_320x240.mp4"

h.264使うのはそもそもコーデック導入が面倒だったので見なかったことにした。

変換できる形式は?

たくさんあるので、デスクトップにテキストファイルで保存してみるが吉
cd C:\Users\xxxx\Desktop
C:\Users\xxxx\Desktop\ffmpeg\bin\ffmpeg.exe -formats > ffmpeg_formats.txt

使えるコーデックは?

デスクトップにテキストファイルで(ry
cd C:\Users\xxxx\Desktop
C:\Users\xxxx\Desktop\ffmpeg\bin\ffmpeg.exe -formats > ffmpeg_codecs.txt

その他オプションは?

 
C:\Users\xxxx\Desktop\ffmpeg\bin\ffmpeg.exe -help

詳しい使い方は参考URL参照。 (「最新」とありますが、これを書いてる時点では2011年06月の情報です。古いですが、基本的に変わってない所もあるので)
参考URL:http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7FFmpeg

TortoiseGitのSSHでリモートにつながらない時はmsysGitのssh.exeを使う

fatal: destination path ‘C:\xxxx’ already exists and is not an empty directory.

gitは正常に終了しませんでした (終了コード 128) (156 ms @ 2013/03/15 8:37:24)

のようなエラーでもって、リモートとのやり取りができない。 msysGitやnetbeansでは問題ないのに…っていう場合は、TortoiseGitが使うSSHクライアントをmsysGitのものに変更すると幸せになれる。

TortoiseGitの設定を起動
TortoiseGitの設定を起動
SSHクライアントはここで指定
SSHクライアントはここで指定(32bitの人はProgram Files/Git/bin/ssh.exeを参照)

ちなみにデフォルトで指定されている

TortoiseGit/bin/TotoisePlink.exe

と同じ所に、

TortoiseGit/bin/TotoiseGitPlink.exe

っていうのがあるけどだまされるな。そいつもわなだ。

ついでに、色々なところでTortoiseSVN付属のTortoisePlink.exeなら…って記事を見かけたけど、やはり上手くいかなかった。

それから、もともとリモートの認証に使ってるrsaの鍵はputtygenでppkに変換して使えた。

rsaキーをインポート
rsaキーをインポート

パスフレーズ入れて…

秘密鍵を保存する
秘密鍵を保存する

で、

*.ppkを署名鍵に
*.ppkを署名鍵に

署名鍵にする。