私はこの問題に対する最善/迅速かつ簡単な解決策を見つけるのに苦労しています。
私は会社を作成するプラグインを持っていますが、ユーザーとして会社の情報をすべて保存しているので、すべての情報はユーザーのプロファイルに含まれています。私はpost/pages/cpt'sだけを検索し、ユーザーは検索しない別のプラグイン(Geo my WP)を持っています。
だから私は、ユーザーがプロファイルを作成したときにcptが作成され、住所などのデータの一部を保存する方法があると思いました。カテゴリも投稿メタデータと同様にそこに格納されています。冗長に思えますが、それから私の地理位置情報プラグインはカスタム変更のヒープなしでうまく機能します(可能ならば)。
Cptを自動的に作成し、ユーザー登録時にも更新される可能性があるのであれば、私は少し疲れます。
それとも他の解決策?
ところで:私は私がちょっと私が検索フォームで使用したい他のcptのものがあるように私のwpの地理を必要としています。
ユーザーがデータベースに追加された直後に呼び出されるアクションフックuser_register
があります。ユーザーIDは引数としてフックに渡されます。
そのアクションに新しい投稿を挿入するためにwp_insert_post
を使うことができます。ユーザーから関連情報を入手して投稿に追加するだけです。 wp_insert_post
によって返される投稿IDを参照することで、作成した投稿にカスタムフィールドを追加できます。
これは、ユーザー登録時にカスタム投稿タイプの投稿を追加する方法の例です。明らかに自分のニーズに合うように変更する必要がありますが、それを行うことでアイデアが得られます。
/*
* Create new custom post type post on new user registration
*/
add_action( 'user_register', 'wpse_216921_company_cpt', 10, 1 );
function wpse_216921_company_cpt( $user_id )
{
// Get user info
$user_info = get_userdata( $user_id );
// Create a new post
$user_post = array(
'post_title' => $user_info->nickname;
'post_content' => $user_info->description,
'post_type' => 'your_company_custom_post_type', // <- change to your cpt
);
// Insert the post into the database
$post_id = wp_insert_post( $user_post );
// Add custom company info as custom fields
add_post_meta( $post_id, 'company_id', $user_info->ID );
add_post_meta( $post_id, 'company_email', $user_info->user_email );
}