AI要約
投稿の送信時にタグとカテゴリを自動的に割り当てますか?投稿送信アドオンを使用すると、訪問者が各投稿送信のカテゴリを選択できるようになります。しかし、送信フォーム内でこれらのカテゴリを割り当てたり、タグを追加したりしたい場合はどうでしょうか?PHPを使用すると、送信時にこれらの投稿にカテゴリまたはタグを簡単に割り当てることができます。
フォームの作成
まず、投稿送信フォームを作成する必要があります。これに関するヘルプが必要な場合は、こちらのドキュメントをご覧ください。
フォームを作成する際は、ブログ投稿送信フォームテンプレートの作成を選択したときにデフォルトで自動的に追加されるカテゴリフォームフィールドを削除することを忘れないでください。PHPスニペットでこれらをマニュアルで設定するため、フォームでこのオプションを提供したくありません。

タグとカテゴリの自動割り当て
投稿の送信時にタグとカテゴリを自動的に割り当てるには、サイトにスニペットを追加する必要があります。
サイトにスニペットを追加するヘルプが必要な場合は、こちらのチュートリアルをご覧ください。
/**
* Assign tags and categories to post submissions
*
* @link https://wpforms.com/developers/how-to-automatically-assign-tags-and-categories-to-post-submissions/
*/
function wpf_dev_post_submissions_process( $post_id, $fields, $form_data ) {
// If form ID is 649, run code below
if ( 649 !== absint( $form_data[ 'id' ] ) ) {
return;
}
// Craft Category ID is 22 - assign the ID 22 as the category
wp_set_object_terms( $post_id, 22, 'category', true );
// Set tag on post to crafts
wp_set_object_terms( $post_id, 'crafts', 'post_tag' );
}
add_action( 'wpforms_post_submissions_process', 'wpf_dev_post_submissions_process', 10, 3 );
カテゴリID番号を見つけるには、WPBeginnerの友人によるこの記事をご覧ください。
このフォームは工芸品のみの送信を収集するため、フォームID 649を対象とします。次に、工芸品カテゴリのID番号であるカテゴリID 22を割り当て、投稿にcraftsタグも追加します。
フォームID番号を見つけるヘルプが必要な場合は、こちらのチュートリアルをご覧ください。

フォームが送信されたときに、確認メッセージに投稿のURLを追加しますか?確認メッセージに投稿送信投稿URLを含める方法に関するチュートリアルをご覧ください。
参照アクション
wpforms_post_submissions_process
よくある質問
Q: 未割り当てカテゴリを削除するにはどうすればよいですか?
A: WordPressがすべての新しい投稿に自動的に割り当てるカテゴリを自動的に削除したい場合は、このスニペットを使用できます。
未割り当てカテゴリのIDは通常1です。ただし、上記の手順と同じ方法でカテゴリID番号を見つけて、これを確認してください。
/**
* Assign tags and categories to post submissions
*
* @link https://wpforms.com/developers/how-to-automatically-assign-tags-and-categories-to-post-submissions/
*/
function wpf_dev_post_submissions_process( $post_id, $fields, $form_data ) {
// If form ID is 649, run code below
if ( 649 !== absint( $form_data[ 'id' ] ) ) {
return;
}
// Craft Category ID is 22 - assign the ID 22 as the category
wp_set_object_terms( $post_id, 22, 'category', true );
// Remove the Unassigned category name from all new posts
wp_remove_object_terms( $post_id, 1, 'category', true );
// Set tag on post to crafts
wp_set_object_terms( $post_id, 'crafts', 'post_tag' );
}
add_action( 'wpforms_post_submissions_process', 'wpf_dev_post_submissions_process', 10, 3 );