ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

投稿送信にタグとカテゴリを自動割り当てる方法

投稿の送信時にタグとカテゴリを自動的に割り当てますか?投稿送信アドオンを使用すると、訪問者が各投稿送信のカテゴリを選択できるようになります。しかし、送信フォーム内でこれらのカテゴリを割り当てたり、タグを追加したりしたい場合はどうでしょうか?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 );