WordPressのプラグイン開発で設定画面で設定保存できるように

今WordPressのプラグイン開発をしていますが、設定画面で入力フォームを作り、データベースに保存する流れの説明記事が、ネットで探しても少ないです。
そして記事が古いことや解説が不足していることもあり、コードを掛けるようになるまでに時間がかかってしまっています。
そのためChatGPTに、質問してみました。
するとネットで見つけることが出来なかった関数を知ることができ、この関数をネットで検索することで理解を深めることができました。

ChatGPTの資料例として、プロンプトも合わせて掲載したいと思います。

プロンプト

WordPressのプラグインを制作のアドバイスを、お願いします。 プラグインの設定画面に、APIKEY、lat、,lonの3つの項目を入力するフォームを作るとき、そのコードの例を示してください。

出力結果

WordPressのプラグインを作成する場合、最初に行うことは、プラグインのファイルを作成し、プラグインの識別情報を記述することです。その後、プラグインの設定画面を作成することができます。

設定画面を作成するには、WordPressが用意する「設定」APIを使用します。これらのAPIを使用することで、管理画面に新しい設定画面を追加することができます。

以下は、APIKEY、lat、lonの3つの項目を入力するフォームを作成する例です。

function my_plugin_menu() {
    add_options_page( 'My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options' );
}
add_action( 'admin_menu', 'my_plugin_menu' );

function my_plugin_options() {
    if ( !current_user_can( 'manage_options' ) )  {
        wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
    }
    echo '<div class="wrap">';
    echo '<h1>My Plugin Options</h1>';
    echo '<form action="options.php" method="post">';
    settings_fields( 'my-plugin-settings-group' );
    do_settings_sections( 'my-plugin-settings-group' );
    submit_button();
    echo '</form>';
    echo '</div>';
}

function my_plugin_settings_init() {
    register_setting( 'my-plugin-settings-group', 'my_plugin_settings' );

    add_settings_section( 'my-plugin-section-one', 'API Settings', 'my_plugin_section_one_cb', 'my-plugin-settings-group' );

    add_settings_field( 'my-plugin-api-key', 'API Key', 'my_plugin_api_key_cb', 'my-plugin-settings-group', 'my-plugin-section-one', array( 'label_for' => 'my-plugin-api-key' ) );
    add_settings_field( 'my-plugin-latitude', 'Latitude', 'my_plugin_latitude_cb', 'my-plugin-settings-group', 'my-plugin-section-one', array( 'label_for' => 'my-plugin-latitude' ) );
    add_settings_field( 'my-plugin-longitude', 'Longitude', 'my_plugin_longitude_cb', 'my-plugin-settings-group', 'my-plugin-section-one', array( 'label_for' => 'my-plugin-longitude'

続きは

そうですね、続きをお伺いします。上のコードでは、まず最初に add_options_page 関数を使用して、プラグインの設定画面を追加しています。この関数には、設定画面のタイトルや説明、権限、ページの識別子、コールバック関数を渡すことができます。

次に、add_settings_section 関数を使用して、設定画面のセクションを追加しています。この関数には、セクションのタイトルや説明、識別子、コールバック関数を渡すことができます。

最後に、add_settings_field 関数を使用して、各設定項目を追加しています。この関数には、項目のタイトルや説明、識別子、コールバック関数、設定グループを渡すことができます。

それぞれのコールバック関数内では、HTMLを出力することで、設定画面に入力フォームを表示することができます。

例えば、APIKEYの項目を入力するフォームを表示するには、以下のようなコールバック関数を作成することができます。

function my_plugin_api_key_cb() {
    $options = get_option( 'my_plugin_settings' );
    ?>
    <input type="text" name="my_plugin_settings[api_key]" value="<?php echo esc_attr( $options['api_key'] ); ?>">
    <?php
}

latitude、longitudeの項目も同様に、コールバック関数を作成し、入力フォームを表示するようにします。

最後に、submit_button 関数を使用して、保存ボタンを表示します。

これで、プラグインの設定画面にAPIKEY、lat、lonの3つの項目を入力するフォームが作成できました。

この答えを踏まえて

上記のようにChatGPTは、回答しました。
でも、この内容が正しいか検証が必要です。
そのため、新しく知った関数をネット検索しました。
流れとしては、合っているのかなと思います。

WordPressのプラグイン開発は、WordPressの関数を理解して作る必要があります。
プラグインのメニューをWordPressの管理画面のメニューに追加できているので、設定項目のフォームを作り、データベースに保存できるように目指しています。

参考にした記事も、ご紹介します。

下記に、私がネットで見つけた記事をご紹介します。

本を読んで勉強できるように

必要な本を購入することが難しく、ちゃんとWordPressのプラグイン開発の勉強することが難しい状況です。
応援していただける方は、ぜひ、お願いします。


この記事が気に入ったらサポートをしてみませんか?