このようにカスタムフィールドは配列やオブジェクトを追加することはできるのですが、ダッシュボード上に表示されないためあまり使い勝手がよくありません。
そこで編集はできませんが表示させる方法を考えてみました。
ADs
ダッシュボード上のカスタムフィールド一覧に表示させることができればよかったのですが、カスタムフィールド一覧のところは手が入れれないようでしたので、新しくメタボックスを作って表示させています。
以下のコードをfunctions.phpに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
//メタボックスを追加する function show_serialize(){ require_once(ABSPATH . 'wp-admin/includes/template.php'); add_meta_box('serialize_meta', 'シリアライズされたカスタムフィールド','show_metadata','post'); } //メタボックスの中身を以下のfunctionで表示させる function show_metadata(){ global $post; $all_metadata = get_post_custom($post->ID); echo '<table border="0" cellspacing="0" cellpadding="0" style="width: 100%;">'; foreach($all_metadata as $key=>$val){ $val = $val[0]; if(is_serialized($val)){ //スタイルは適当に。。。。 echo '<tr>'; echo '<th style="border-bottom: 1px solid #999;padding: 5px;">'.$key.'</th>'; echo '<td style="border-bottom: 1px solid #999;padding: 5px;"><pre>'.print_r(unserialize($val),true).'</pre></td>'; echo '</tr>'; } } echo '</table>'; } //個別記事編集ページへのフック add_action( 'admin_head-post.php', 'show_serialize' ); |
上記コードを追加すると、以下の様なメタボックスを表示させることができます。
ADs
コメントはまだありません。