functions.phpに下記を追記
// カスタムフィールドボックス[問い合わせデータの表示順]
function add_mw_order_fields() {
//add_meta_box(表示される入力ボックスのHTMLのID, ラベル, 表示する内容を作成する関数名, 投稿タイプ, 表示方法)
add_meta_box( 'mw_order_setting', '問い合わせデータの表示順', 'insert_mw_order_fields', 'mw-wp-form', 'normal');
}
add_action('admin_menu', 'add_mw_order_fields');
// カスタムフィールドの入力エリア[問い合わせデータの表示順]
function insert_mw_order_fields() {
global $post;
echo '<div><input style="width: 100%;" type="text" name="mw_order" value="'.get_post_meta($post->ID, 'mw_order', true).'" size="50" placeholder=""/></div>';
}
// カスタムフィールドの値を保存[問い合わせデータの表示順]
function save_mw_order_fields( $post_id ) {
if(!empty($_POST['mw_order'])){
update_post_meta($post_id, 'mw_order', $_POST['mw_order'] );
}else{
delete_post_meta($post_id, 'mw_order');
}
}
add_action('save_post', 'save_mw_order_fields');
// カスタムフィールドの値による問い合わせデータ表示順設定
function my_mwform_inquiry_data_columns( $columns ) {
if(empty($_GET['post_type']) || strpos($_GET['post_type'],'mwf_') === false){
return $columns;
}
$tmp = explode('_',$_GET['post_type']);
if(count($tmp) < 2 || !is_numeric($tmp[1])) {
return $columns;
}
$meta = get_post_meta($tmp[1],'mw_order',true);
if (empty($meta)) {
return $columns;
}
$order = explode(',',$meta);
$result = [];
foreach ($order as $key => $value){
if(empty($value))continue;
$result[$value] = $value;
}
return $result;
}
// フィルターフックの要否を判定し必要なら処理を設定する
if(!empty($_GET['post_type']) && strpos($_GET['post_type'],'mwf_') === 0){
$tmp = explode('_',$_GET['post_type']);
if(1 < count($tmp) && is_numeric($tmp[1])) {
$meta = get_post_meta($tmp[1], 'mw_order',true);
if (!empty($meta)) {
add_filter('mwform_inquiry_data_columns-mwf_' . $tmp[1], 'my_mwform_inquiry_data_columns');
}
}
}
追加されたカスタムフィールドへnameをカンマ区切りで入力する。