
開発紀其之参(SpineとWordPress)
ページごとにファイルを管理するということで、取り急ぎ思いつくのはカスタムフィールドでファイル添付させること。
まずはインターフェイスだけ制作して、みんなの反応を聴くことに。
// JSON File Upload
function spine_json_file() {
define('JSON_FILE_KEY', 'json_file_key');
define('JSON_NAME_FILE', 'json_name_file');
wp_nonce_field( plugin_basename( __FILE__ ) , 'json_add_file');
$id = get_the_ID();
$post_meta = get_post_meta($id, JSON_FILE_KEY, true);
if($post_meta) :
echo '<div><a href="'.$post_meta['url'].'" target="_blank">'.$post_meta['url'].'</a></div>';
endif;
$name = JSON_NAME_FILE;
echo '<input type="file" name="{$name}" id="{$name}" value="" />';
if($post_meta) :
echo '<label><input type="checkbox" name="{$name}_delete" id="{$name}_delete" value="1" />ファイル削除</label>';
endif;
}
function json_metabox_file() {
$slags = get_post_types();
foreach ( $slags as $slag ) {
add_meta_box(
'json_file',
'Spine json upload',
'spine_json_file',
$slag ,
'normal',
'high'
);
}
}
add_action('add_meta_boxes', 'json_meta_boxes_file');
取り急ぎメタボックスを表示するコードをサンプルを見ながら書いてみる。
キャプチャーのようにファイルが追加できるようになったので、これならバージョン管理とかもできて良いんじゃない? ということで。
あとはファイルアップローダーを追加すれば、大きな課題は一つ通過しそうです。今日は時間的にここまで。
参考ソースを探したら見つけたので、大いに参考にさせていただきます。