投稿にタグとカテゴリを自動的に割り当てたいですか?Post Submissionsアドオンを使えば、訪問者が投稿ごとにカテゴリーを選択することができます。しかし、投稿されたフォームの中からカテゴリーを割り当てたり、投稿にタグを追加したいとしたらどうでしょうか?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を22に割り当てます。これはCraftsカテゴリのID番号だからです。
フォーム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 );