web-dev-qa-db-ja.com

Wpオプション用にデータをシリアル化する

私は初めてプラグインを作成しています。その目的は、いくつかの条件が満たされたときに通知を表示することです。私はjQueryで関数を作成しました。ユーザーがフロントエンドからメッセージを編集できるようにするための設定ページ。

Stackxchangeの別のメンバーのおかげで、私は代わりにwpオプションに保存されたカスタムメッセージを表示するためにwp localizeを使うことができました。しかし、私は今、私自身が次のように示されているメッセージを構造化しなければならないことに気付きました。

Title

Message

Image

あまり多くのオプションを作成したくないので、データをシリアル化しようと思ったのですが、その方法がわかりません。

設定ページには、ユーザーがメッセージを入力するためのテキストボックスが1つあります。

<textarea name="msg_data" id="msg_data" cols="40" rows="10" />
<?php echo get_option('notice_data'); ?>
</textarea>

これがローカライズです

$custom_notice = get_option('notice_data', 'default_value');
  wp_localize_script( 'lu_ban', 'custom_notice', $custom_notice);

私の目標は、タイトル用、本文用、画像パス用の3つの異なる入力を作成することです。

ありがとう

1
David Garcia

データを保存するには、このコードを使用します。シリアライズ値を保存します。

$title    = 'Your Title Value';
$message  = 'Your message HTML..';
$image    = 'http://www.domain.com/yourimage.jpg';

$notice_data = array('title'   => $title, 
                     'message' => $message,
                     'image'   => $image
                    );


if(get_option('notice_data') === FALSE){
    add_option('notice_data',  $notice_data );
}else{
    update_option('notice_data', $notice_data );
}

これで、シリアライズ値を取得してコードで使用することができます

$notice_data =   get_option('notice_data')  ;  

echo $notice_data['title'];

var_dump($notice_data);
2
Shahinul Islam