web-dev-qa-db-ja.com

データベースへのプラグイン設定の保存

  1. 私はphpやwordpressの完全な初心者ではありませんが、最も効率的な方法でこの問題に取り組みたいと思っているので、ここで尋ねることが役に立つと信じています。

  2. ランダムに見積もりを生成するプラグインを持っています - 見積もりをmysql DBに保存する必要があるところまで手に入れました。

  3. 設定apiを使用するのか、単に配列に保存するのかにかかわらず、データを保存するための最良の方法を知りたいです。

  4. 見積もりを削除するオプションも実装したいと思います。

  5. 入力テキストフィールドを使用して、テキストボックスに新しい引用符を追加し、その引用符を保持している配列にデータを渡す方法を知りたいです。

私のコードははるかに(引用符は現時点では配列に格納されています)

<?php

/*idea to develop further would be, add a text box that the user can input the quote in
this then gets added to the DB and passed to the $quotes array. From here the results get
output the same way*/
/*
Plugin Name: Random Quotes
Plugin URI: xxx 
Description: This Plugin randomly generates Quotes input by the user.
Version: 0.0.1
Author: xxx
Author URI: xxx
License: GPL2
*/

add_action('admin_menu', 'dw_quotes_create_menu');

function dw_quotes_create_menu() {
    //create custom top-level menu
    add_menu_page('Quotes Settings', 'Quotes Styling', 'manage_options', __FILE__, 'dw_styling_quotes_settings');
}

function dw_styling_quotes_settings() { ?>
    <div class="wrap">
        <?php screen_icon( 'plugins' ); ?>
        <h2>Quotes Page</h2>
    <table class="form-table">
        <tr valign="top">
            <th scope="row">Input Quotes in the textbox</th>
                <td><input type="textarea" name="random_quote" value="" /></td>
        </tr>
    </table>
    </div>
<?php } 

// add quotes to this list
$quotes = array(
            "one" => "The weak can never forgive. Forgiveness is the attribute of the strong",
            "two" => "Be strong when you are weak, Be brave when you are scared, Be humble when you are victorious",
            "three" => "Our success is achieved by uniting our strength, not by gathering our weaknesses",
            "four" => "One of the most common causes of failure is the habit of of quitting when one is overtaken by temporary defeat",
            "five" => "The struggles make you stronger and the changes make you wise! Happiness has its own way of taking its sweet time"
            );

// uses array_Rand to randomly pick a quote
$Rand_quotes = array_Rand( $quotes);

// pass's the result of $array_Rand to $result_quotes
$result_quote = $quotes[$Rand_quotes];

// outputs the result
//echo $result_quote;

?>
2
Dannyw24

シリアル化された値として可能なオプションに配列を格納します。

update_option('dw_quotes', serialize($quotes));

そしてで検索してください。

$quotes = get_option('dw_quotes', null);
if ($quotes !==  null) { $quotes = unserialize($quotes); }

考慮すべきその他の事項:

引用符オプションが存在しない場合の処理​​を追加します。

プラグインが削除されたときにオプションテーブルから引用符を削除する処理も追加しました。参照してください: http://codex.wordpress.org/Function_Reference/register_uninstall_hook

2
Shawn H