デジタルアーカイブ公開システム(8)
メタデータを管理する「Advanced Custom Fields」がバージョンアップしました(V5へ)。新しいバージョンは前バージョンと互換性がないので、公開システムの修正が必要となった。
特にグループデータ関係に問題が出たので、次のように修正した。
// acf グループ データ取得 v5用 function da_getlabel( ) { global $da_acf_g; $options = array(); $target_label = array(); $field_groups = acf_get_field_groups(); foreach ( $field_groups as $group ) { // DO NOT USE here: $fields = acf_get_fields($group['key']); // because it causes repeater field bugs and returns "trashed" fields if( $group['title'] == $da_acf_g ) { $fields = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'acf-field', )); foreach ( $fields as $field ) { $target_label[]=array('name' => $field->post_excerpt,'label' => $field->post_title); } break; } } return $target_label; }
/* acf グループのメタデータ取得 v5用 */ if ( ! function_exists( 'da_getacffield' ) ): function da_getacffield( $acfgroup, $name ) { $target_field = array(); $meta = array(); $field_groups = acf_get_field_groups(); foreach ( $field_groups as $group ) { // DO NOT USE here: $fields = acf_get_fields($group['key']); // because it causes repeater field bugs and returns "trashed" fields if( $group['title'] == $acfgroup ) { $fields = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'acf-field', )); foreach( $fields as $f ) { $meta = unserialize($f->post_content); $meta['name']=$f->post_excerpt; $meta['label']=$f->post_title; if( $meta['name'] == $name ) { $target_field = $meta; break; } } } } return $target_field; } endif;
また、lightbox機能を「Luminous」を使って実現した。
そろそろプラグインの配布をすることにした。