WordPress標準の機能でもカスタムフィールドを表示できますが、やぼったくなるので自身で表示・更新できるといいなという話で実際にやってみました。
Step 1:投稿画面にカスタムフィールドを表示する
function infobox_ex() {
add_meta_box( 'infobox', '付加情報', 'infobox_ex_callback', 'post', 'normal');
}
add_action('admin_menu', 'infobox_ex');
// 投稿画面に表示するHTML
function infobox_ex_callback() {
global $post;
echo '画像URL: <input type="text" name="img_url" value="'.get_post_meta($post->ID, 'img_url', true).'" style="width:100%" /><br>';
}
上記をテーマのfunctions.phpに追加してください。これだけで、img_urlというカスタムフィールドを表示します。
Step 2:更新できるようにする
// 保存処理
function save_infobox_ex( $post_id ) {
if(!empty($_POST['img_url'])){
update_post_meta($post_id, 'img_url', $_POST['img_url'] );
}else{ //未入力の場合
delete_post_meta($post_id, 'img_url');
}
}
add_action('save_post', 'save_infobox_ex');
上記をさらに追記することで、内容がDBに保存できるようになります。
/wp-admin/post.php 19行目以降をみると、$_GET['post']、$_POST['post_ID'] をきちんと処理しているようにみえるので・・。
-->
スポンサーリンク
コメントを残す