• HOME
  • WordPress
  • 投稿にカスタムフィールドを作りのデータを保存

投稿にカスタムフィールドを作りのデータを保存

// 固定ページスマホ用中身
function nskw_meta_box_inside() {
	$smart_text_value = get_post_meta( $_GET['post'], 'smart_text' );
	$smart_text = $smart_text_value[0];
	?>
		<div><textarea id="smart_text" name="smart_text"><?php if($smart_text) echo $smart_text;?></textarea></div>
	<?php
}

// メタボックスを追加する関数
function nskw_meta_box_output() {
	add_meta_box('nskw_meta_post_page', 'スマートフォンコード', 'nskw_meta_box_inside', 'page', 'normal', 'core' );
}

// フックする
add_action('admin_menu', 'nskw_meta_box_output' );

/*更新ボタンが押されたときに実行*/
add_action('save_post', 'save_custom_field_postdata');

/* 設定したカスタムフィールドの値をDBに書き込む記述 */
function save_custom_field_postdata( $post_id ) {
	$mydata = $_POST['smart_text'];
	if ( "" == get_post_meta( $post_id, 'smart_text' )) {
	/* smart_textというキーでデータが保存されていなかった場合、新しく保存 */
	add_post_meta( $post_id, 'smart_text', $mydata, true ) ;
	} else if ( $mydata != get_post_meta( $post_id, 'smart_text' )) {
	/* smart_textというキーのデータと、現在のデータが不一致の場合、更新 */
	update_post_meta( $post_id, 'smart_text', $mydata ) ;
	} else if ( "" == $mydata ) {
	/* 現在のデータが無い場合、page_layoutというキーの値を削除 */
	delete_post_meta( $post_id, 'smart_text' ) ;
	}
}