0

私はこれを理解するのに多くの時間を費やしました。プラグインのインストール時にフィールドにデフォルト値を自動的に入力する方法、またはデータベースに挿入する方法。

これらの次のコードを試しましたが、何も機能しません:

register_activation_hook(__FILE__, 'just_a_handler');
function just_a_handler($plugin_options) {
$defaults = array(
      'youtube_keyword' => 'keyword here',
      'youtube_author' => 'author here',
      'youtube_content' => 'by_keyword',
      'youtube_width' => '500',
      'youtube_height' => '350',
      'youtube_number_of_videos' => '5',
      'youtube_preview' => '',
    );
    $plugin_options = wp_parse_args(get_option('youtube_plugin_options'), $defaults);
}

そしてこれ:

register_activation_hook(__FILE__, 'just_a_handler');
    function just_a_handler() {
     add_option("youtube_keyword", 'keyword here', '', 'yes');
    add_option("youtube_author", 'author here', '', 'yes');
}
4

1 に答える 1

0

オプションにいくつかのデフォルトを自動的に入力するには、次のようなことができます。このコードをいつ実行するかにもよりますが、オプションにデフォルトのデータを入力する前に、オプションがまだ存在していないことを確認することをお勧めします。また、配列を保存する場合は、データベースに追加する前にデータをシリアル化する必要があることに注意してください。データベースには、数値、テキスト、および日付のみを格納できます。シリアライゼーションは配列を受け取り、それをシリアライズされた文字列に変換します。

function init_options() {
    $retrieved_options = array();
    $defaults = array(
      'youtube_keyword' => 'keyword here',
      'youtube_author' => 'author here',
      'youtube_content' => 'by_keyword',
      'youtube_width' => '500',
      'youtube_height' => '350',
      'youtube_number_of_videos' => '5',
      'youtube_preview' => '',
    );

    // Check to see if the option exists
    $retrieved_options = maybe_unserialize( get_option( 'youtube_plugin_options' ) );

    if ( $retrieved_options == '' ) {
        // There are no options set
        add_option( 'youtube_plugin_options', serialize( $defaults ) );
    } elseif ( count( $retrieved_options ) == 0 ) {
        // All options are blank
        update_option( 'youtube_plugin_options', serialize( $defaults ) );
    }
}

register_activation_hook( __FILE__, 'init_options' );
于 2013-02-06T18:16:33.473 に答える