ユーザーを、投稿者として関連づけるのではなく、
カスタムフィールドを使って関連づけしたい、そんな場合の対処法です。
[adsense]
fanction.phpを編集する
function.php に以下の内容を記述します。
add_action('admin_menu', 'basic_menu'); function basic_menu() { //管理画面で実行する関数 add_userfealds(); } //投稿画面(カスタム投稿タイプの場合、postを変更)にメタボックスを追加 function add_userfealds() { add_meta_box('userfealds', 'ユーザーを選択', 'insert_userfealds', 'post', 'normal', 'low'); } //ユーザーのセレクトボックスを用意 function insert_userfealds(){ global $post; $selectuserid = get_post_meta($post->ID, 'selectuserid', true); $users = get_users(array('orderby'=>'ID','order'=>'ASC')); wp_nonce_field(wp_create_nonce(__FILE__), 'my_nonce'); echo '<p>ユーザーを選択してください</p><select name="selectuserid">'; echo '<option value="0" selected>選択してください</option>'; foreach($users as $user) : $uid = $user->ID; $uname = $user->display_name; echo '<option value="'.$uid.'" '; if($uid==$selectuserid)echo 'selected '; echo ' >'.$uname.'</option>'; endforeach; echo '</select>'; } //保存時にセレクトボックスの内容を保存 add_action('save_post', 'save_userfealds'); function save_userfealds($post_id){ $my_nonce = isset($_POST['my_nonce']) ? $_POST['my_nonce'] : null; if(!wp_verify_nonce($my_nonce, wp_create_nonce(__FILE__))) { return $post_id; } if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } if(!current_user_can('edit_post', $post_id)) { return $post_id; } $data = $_POST['selectuserid']; if(get_post_meta($post_id, 'selectuserid') == ""){ add_post_meta($post_id, 'selectuserid', $data, true); }elseif($data != get_post_meta($post_id, 'selectuserid', true)){ update_post_meta($post_id, 'selectuserid', $data); }elseif($data == ""){ delete_post_meta($post_id, 'selectuserid', get_post_meta($post_id, 'selectuserid', true)); } }
あとは、カスタムフィールドを引っ張るだけ。